TabBar + 多个Navigation 可能产生的问题

2016-09-08  本文已影响68人  竹菜板

TabBar + 多个Navigation 可能产生的问题

需求: 在主界面显示TabBar,在子界面隐藏TabBar。【TabBar和Navigation都是原生的】


问题:当每个TabBar页签都绑定NavigationController时(如图),会产生这样的问题:当进入一个子界面,此时TabBar正常隐藏,单击Home键,或者切换到其他App,再回来,可能TabBar又显示了,如果没显示,可以回到上个界面(即主界面),再到其他子界面去,多切换几下,应该会出现我说的问题。我个人认为这是苹果iOS自身的Bug。

图例

我的解决方案:


1、对于主界面上的Controller:

override func viewWillAppear(animated: Bool) {
    tabBarController?.tabBar.hidden = false
}

2、对于二级界面的Controller:

NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(self.onAppDidEnterBackground), name: UIApplicationDidEnterBackgroundNotification, object: nil)

func onAppDidEnterBackground() {
    tabBarController?.tabBar.hidden = true
}

2016.10.14更新

上面的第一点中,更好的做法是在二级界面的View Controller的Layout 中把Hide Bottom Bar on Push勾上。

但是上面的第二点是解决本案问题的重点!


如您有更多更好的解决方案,请勿私藏,跟大伙一起分享,谢谢!


本文GitHub地址

上一篇 下一篇

猜你喜欢

热点阅读