我在使用导航控制器时遇到问题。我的程序布置在我有一个开始屏幕的地方(不在导航控制器中),然后当您按下按钮时,它会将您发送到导航控制器和新视图。
有没有办法使用后退按钮从导航控制器返回主屏幕。
或者,如果我将开始屏幕作为导航控制器的根目录,是否可以隐藏视图中的顶部栏。
我最初没有包含开始屏幕的原因是因为我不希望屏幕上出现导航栏。
谢谢。
为了隐藏UINavigationBar
然后在您的开始屏幕视图控制器的方法中使用波纹管viewWillAppear:
..
[self.navigationController setNavigationBarHidden:YES];
或者
[self.navigationController setNavigationBarHidden:YES animated:YES];
并且您可以使用以下代码返回上一个视图以及主屏幕或父视图...
-(IBAction)yourButton_Clicked:(id)sender{
[self.navigationController popViewControllerAnimated:YES];//// For back to Previous view
// [self.navigationController popToRootViewControllerAnimated:YES]; // For Back to home screen or parent view
}
好吧,有一个非常简单的方法可以UINavigationBar
在蚂蚁视图中隐藏你想要的时候:-
[self.navigationController setNavigationBarHidden:YES];
并且在您想要显示它的视图中,只需像这样取消隐藏它:-
[self.navigationController setNavigationBarHidden:NO];
您可以在所有屏幕中使用导航栏。但是对于您不想显示的屏幕,只需使用隐藏属性作为导航栏。该屏幕不会在顶部显示导航栏。
[[self navigationController] setNavigationBarHidden:YES animated:YES];
它会解决你的问题。
- (void) viewWillAppear:(BOOL)animated{
[self.navigationController setNavigationBarHidden:YES animated:animated];
[super viewWillAppear:animated];
}
- (void) viewWillDisappear:(BOOL)animated{
[self.navigationController setNavigationBarHidden:NO animated:animated];
[super viewWillDisappear:animated];
}
通过在主屏幕上实现此功能,您可以隐藏顶部栏
你可以使用隐藏导航栏
self.navigationController.navigationBarHidden = YES;
将开始屏幕作为子视图添加到导航的根视图控制器。
[self.view addSubview:startScreen.view]
稍后将其删除并将[startScreen.view removFromSuperview]
标志设置navigationBarHidden
为NO
.
如果您使用情节提要,您可以创建一个 UIButton 并以模态方式链接视图。
另请查看https://stackoverflow.com/a/8348527/401787以在视图控制器之间导航。
其实你的要求并不明确。但是要隐藏您可以使用的导航控制器,
self.navigationController.navigationBarHidden=YES;
您还可以将自定义按钮添加到导航栏。
UIBarButtonItem *leftBtn=[[UIBarButtonItem alloc]initWithTitle:@"Back" style:UIBarButtonSystemItemAction target:self action:@selector(backBtnClicked:)];
self.navigationItem.leftBarButtonItem=leftBtn;
您可以在backBtnClicked:
方法中正确地提出您的要求。您还可以导航到您的根级视图控制器。