如标题所示,根视图是我的导航控制器,它被设置为不可见,它在启动时。但是,如果我将视图推入堆栈然后弹出它,则会出现导航栏。
有关为何以及如何纠正这种情况的任何线索?
答案 0 :(得分:1)
每当您的控制器view
出现(或消失)在屏幕上时,您需要隐藏它。这是必要的,因为条保持不同的推/弹操作之间的状态。例如,如果您将其隐藏在第一个控制器中的viewDidLoad
内,而在第二个控制器中将其设置为可见,则当您弹出第二个控制器时,该栏将保留您设置的最后一个状态。
例如,覆盖viewWillAppear
和viewWillDisappear
方法并隐藏/取消隐藏栏。
- (void) viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
[self.navigationController setNavigationBarHidden:YES animated:animated];
}
- (void) viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[self.navigationController setNavigationBarHidden:NO animated:animated];
}