当我尝试呈现modalViewController时,它会覆盖我的导航控制器的导航栏。有小费吗?感谢。
更新(带代码):
ComposeText *compText = [[ComposeText alloc] initWithNibName:@"ComposeText" bundle:[NSBundle mainBundle]];
compNavController = [[UINavigationController alloc] initWithRootViewController:compText];
UIBarButtonItem *doneButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:compNavController action:@selector(compDoneTapped:)];
compNavController.navigationItem.rightBarButtonItem = doneButton;
[self presentModalViewController:compNavController animated:YES];
compText.title = @"Compose";
[doneButton release];
一切似乎都是有序的,但按钮仍然没有出现在导航栏上。
答案 0 :(得分:1)
这就是应该做的。如果你想要一个导航栏,以模态方式呈现一个新的UINavigationController并将它的根视图控制器设置为你的modalViewController。
答案 1 :(得分:1)
您需要问自己的问题是:“为什么我要显示我的导航栏”。如果要让用户访问某些按钮,那么这是错误的原因。模态视图控制器可以完全控制屏幕,并且不允许用户操作应用程序中的任何其他内容,直到控制器被解除。如果您不希望这样做,就像Cyprian建议的那样,并在您的导航堆栈上推送视图控制器。
如果它只是一个视觉事物(徽标......)在你的模态视图控制器中复制它。
答案 2 :(得分:0)
UINavigationController有自己的方法来显示另一个viewController。
-(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated
它使用stack来推送新的viewController,以便它可以使用按钮处理其导航。