如标题所示,根视图是我的导航控制器,并且设置为不可见(在启动时)。但是,如果我将视图推到堆栈上然后将其弹出,则会出现导航栏。
关于为什么以及如何纠正这种情况的任何线索?
最佳答案
每次控制器的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];
}
关于objective-c - 导航栏设置为不可见,但是当单击“后退”按钮时,它会出现,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9812165/