即使使用导航控制器,UITabbar 也会消失

Posted

技术标签:

【中文标题】即使使用导航控制器,UITabbar 也会消失【英文标题】:UITabbar disappearing even with navigation controller 【发布时间】:2018-05-10 10:24:17 【问题描述】:

我在NavigationController 中嵌入了viewController,并将其设置为rootViewController。然后我将TabBarController 连接到NavigationController。我在LessonViewController 中有一个按钮,显示PurchaseViewController,然后在PurchaseViewController 中有一个返回按钮,显示LessonViewController。但是,标签栏仍然存在于PurchaseViewController,所以我勾选了hideBottomBarOnPush,这解决了这个问题,但是当我继续回到LessonViewController时,标签栏已经消失了。

有什么想法吗?

下图是我的故事板现在的样子:

【问题讨论】:

按下后退按钮时不应该推动另一个 LessonViewController,但应该弹出 PurchaseViewController。如果您推送另一个 LessonViewController 旧的 PurchaseViewController 仍将在导航堆栈中。 我已经听取了您的建议并弹出了他的视图控制器!干杯 【参考方案1】:

类似于 barb 的代码,我让它工作,同时启用“按下时隐藏底部工具栏”,然后弹出视图控制器:

override func viewWillAppear(animated: Bool) 
super.viewWillAppear(animated)
self.tabBarController?.tabBar.hidden = false

【讨论】:

【参考方案2】:

你应该这样做,

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
    if segue.identifier == "Your_Identifier" 
        hidesBottomBarWhenPushed = true
        DispatchQueue.main.async  self.hidesBottomBarWhenPushed = false 
    

它会显示 TabBar 在后退时重新出现。

【讨论】:

我没有对此进行测试,因为之前的答案之一已经解决了它,我决定弹出视图控制器,但我可能会将它用于其他情况,所以谢谢! @HarryStuart 我已经测试过了,它绝对可以工作 我以后在视图之间切换时会使用它!

以上是关于即使使用导航控制器,UITabbar 也会消失的主要内容,如果未能解决你的问题,请参考以下文章

模态视图控制器即使在设置其框架 iphone 后也会与导航栏重叠

Yelp Middle UITabBar 导航

UITabBar 控制器选项卡导航到不同的 UIViewControllers

实现 UIToolBar 使其同时充当 UITabBar 和 UIToolBar

iOS 8 - 切换控件后,即使在纵向模式下,旋转也会使状态栏消失

即使在使用 Incude 之后,EF 核心导航属性也会返回空值