iOS - 导航栏隐藏/显示

Posted

技术标签:

【中文标题】iOS - 导航栏隐藏/显示【英文标题】:iOS - NavigationBar hide/show 【发布时间】:2015-01-01 10:34:50 【问题描述】:

我有一个大师viewController 和许多细节viewController。大师viewController 没有任何UINavigationBar,但细节viewControllerUINavigationBar。所以我有一些问题。当我从 detailVC 滑动到 masterVC UINavigationBar 隐藏在 detailVC

你有什么解决办法吗?

我使用这些方法(大师viewController

 -(void)viewWillAppear:(BOOL)animated

     [super viewWillAppear:animated];
     [self.navigationController setNavigationBarHidden:YES animated:YES];

    

(详情viewController

-(void)viewWillAppear:(BOOL)animated
     [super viewWillAppear:animated];
    [self.navigationController setNavigationBarHidden:NO animated:YES];

【问题讨论】:

你不需要这样处理,UINavigationController会为你做。我认为你的代码有问题。你能告诉我你是如何从masterVC推送到detailVC的吗? NoteTableViewController *vc = [self.storyboard instantiateViewControllerWithIdentifier:@"noteID"]; [self.navigationController pushViewController:vc 动画:YES]; 这是推送到detailVC的代码 是的,没错。您提供的 gif 效果很好。怎么了? navigationController 用于这种方式来显示 stack 类层次结构。 当滑动并打破detailVC。几次后navigationBar 隐藏在detailVC 中。然后我必须重新启动应用程序,因为我无法通过任何 vc 【参考方案1】:

终于

我已经解决了这个问题。

我在 viewDidAppear 方法中为 firstVC 写了 UINavigationBar 隐藏代码。

-(void)viewDidAppear:(BOOL)动画

 [super viewDidAppear:animated];
 [self.navigationController setNavigationBarHidden:YES animated:YES];

【讨论】:

以上是关于iOS - 导航栏隐藏/显示的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 导航栏隐藏/显示

iOS:在导航栏中显示搜索栏时隐藏范围栏

iOS:滚动表格视图时隐藏和显示自定义导航栏

# iOS导航栏控制Tips

屏幕键盘出现时iOS隐藏导航栏

iOS导航栏的正确隐藏方式