我有带NavigationController的rootViewController。在rootView navigationBar上隐藏。当我按下下一个视图时,会显示navBar。所以当我从第二个视图返回到rootView时,navBar会隐藏。没关系。然后我想从第二个视图转到第三个视图并显示navBar。但它是隐藏的,因为在第二个视图中我有这个代码在从第二个视图转到它时在rootView中隐藏navBar:
-(void)viewWillDisappear:(BOOL)animated{
[super viewWilDisappear:animated];
[self.navigationcontroller setNavigationBarHidden:YES animated:YES];
}
如何仅在rootView上显示navBar并将其隐藏在所有其他视图上?
第二个视图是UIViewController的子类,第三个视图是UIViewController的子类,也是由IB创建的UITableView。
UPD
在第一个viewController中我添加了这个:
-(void)viewDidLoad{
[self.navigationController setNavigationBarHidden:YES];
[super viewDidLoad];
}
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
-(void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
第三节:
-(void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:NO animated:YES];
}
感谢您的帮助,伙计!!
答案 0 :(得分:1)
在第三个视图的viewWillAppear中添加:
-(void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationcontroller setNavigationBarHidden:NO animated:YES];
}
答案 1 :(得分:1)
试试这个: -
在thirdView中写道: -
-(void)viewDidAppear:(BOOL)animated
{
[self.navigationcontroller setNavigationBarHidden:NO animated:YES];
}
答案 2 :(得分:1)
如果您希望在第二个和第三个ViewControllers中显示导航栏,只需将以下内容添加到viewWillAppear或viewDidLoad方法中:
self.navigationController.navigationBarHidden = NO;
如果您的UINavigationController具有(强)属性,我建议您应该这样做。