【问题标题】:Navigation Bar set to be invisible, but when back button is clicked it appears导航栏设置为不可见,但单击后退按钮时会出现
【发布时间】:2012-03-21 20:16:09
【问题描述】:

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

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

【问题讨论】:

    标签: objective-c ios uinavigationcontroller uinavigationbar


    【解决方案1】:

    每次您的控制器的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];    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 2022-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多