Skip to content

Files

Latest commit

71daee7 · Oct 27, 2016

History

History
44 lines (27 loc) · 1.5 KB

002.md

File metadata and controls

44 lines (27 loc) · 1.5 KB

#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勾上。

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


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