导航栏不隐藏

Posted

技术标签:

【中文标题】导航栏不隐藏【英文标题】:Nav Bar not hiding 【发布时间】:2015-08-18 02:09:38 【问题描述】:

由于某种原因,我的底部导航栏没有隐藏在我的主视图控制器上(以下故事板中的蓝屏):

我不想在蓝屏底部显示标签栏,所以我在其视图控制器中放入了以下代码:

override func viewWillAppear(animated: Bool) 
    self.navigationController?.setToolbarHidden(true, animated: animated)
    self.navigationController?.setNavigationBarHidden(true, animated: animated)
    super.viewWillAppear(animated)


override func viewWillDisappear(animated: Bool) 
    self.navigationController?.setToolbarHidden(false, animated: animated)
    self.navigationController?.setNavigationBarHidden(false, animated: animated)
    super.viewWillDisappear(animated)

顶部导航栏未显示(如预期),但底部导航栏未隐藏。此后它还在每个屏幕上显示两次(见下面的截图):

是因为我的界面构建器中有一个标签栏控制器吗?有没有办法以编程方式实现带有四个图标的标签栏控制器?我真正希望标签栏控制器打开的唯一屏幕是表格视图。

【问题讨论】:

试试这个***.com/questions/30325292/… @Memon,谢谢。我试过了,不幸的是,标签栏仍然显示在蓝屏的底部。此外,当我滑动到绿屏时,底部标签栏会显示一秒钟然后消失。我想知道这是否与我在流程开始时放置了一个标签栏控制器这一事实有关。有什么想法吗? 【参考方案1】:

使用hidesBottomBarWhenPushed

在蓝色背景的视图控制器中:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    if let desVC: UIViewController = segue.destinationViewController as? UIViewController 
        desVC.hidesBottomBarWhenPushed = true
    

【讨论】:

感谢@zy.liu,我尝试将以下内容放入蓝屏的viewWillAppear (ViewController.swift),'self.hidesBottomBarWhenPushed = true' self.navigationController?.pushViewController(self, animated: true ),它给了我一个错误:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“不支持多次推送同一个视图控制器实例” 我按照你的建议添加了。底部栏仍然出现在蓝屏上,当它切换到下一个屏幕(绿色)时,最初出现两个底部栏(与上面提供的屏幕截图中显示的问题相同),然后一秒钟后,上部消失了.关于如何解决这个问题的任何其他想法?谢谢【参考方案2】:

删除此行self.navigationController?.setToolbarHidden(true, animated: animated)TextField 顶部连接(安全区域)更改Superview

【讨论】:

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

页面视图 + 隐藏导航栏不起作用

隐藏导航栏不起作用

iOS解决隐藏导航栏后,打开照片选择器后导航栏不显示的问题以及更换导航栏背景色

导航回屏幕时隐藏的 React Native 状态栏不起作用(Android)

单击时使用 data-toggle="offcanvas" 关闭导航栏不起作用

vue中导航栏的显示和隐藏