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

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地址

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容