如标题所示,根视图是我的导航控制器,并且设置为不可见(在启动时)。但是,如果我将视图推到堆栈上然后将其弹出,则会出现导航栏。

关于为什么以及如何纠正这种情况的任何线索?

最佳答案

每次控制器的view出现(或消失)在屏幕上时,您都需要隐藏它。这是必要的,因为该条在不同的推/弹出操作之间保持状态。例如,如果您将其设置为隐藏在第一个控制器的viewDidLoad中,而在第二个中,则将其设置为可见,当您弹出第二个控制器时,栏将保持您已设置的最后一个状态。

例如,覆盖viewWillAppearviewWillDisappear方法并在其中隐藏/取消隐藏栏。

- (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/

10-13 01:54