【问题标题】: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)
}

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

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

【问题讨论】:

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

标签: ios swift storyboard


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多