我使用以下方法在整个应用中禁用导航栏:
[navcontroller setNavigationBarHidden:YES animated:YES];
但是只能为一个ViewController
禁用它吗?
答案 0 :(得分:1)
当然可以。每当您输入视图控制器时,您都可以为该视图控制器启用或禁用(只需在[[self navigationController] setNavigationBarHidden:YES animated:YES]
viewWillAppear
答案 1 :(得分:0)
我找到的最好的解决方案是在第一个视图控制器中执行以下操作。
- (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];
}
当您按下堆栈上的下一个UIViewController时,这将导致导航栏从左侧(与下一个视图一起)动画,并在您按下时向左移动(与旧视图一起) UINavigationBar上的后退按钮。
请注意,这些不是委托方法,您要覆盖UIViewController的这些方法的实现,并且根据文档,您必须在实现的某个地方调用super的实现。
希望这可以解决您的问题。