美文网首页
TabBar + 多个Navigation 可能产生的问题

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

作者: 竹菜板 | 来源:发表于2016-09-08 15:40 被阅读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地址

    相关文章

      网友评论

          本文标题:TabBar + 多个Navigation 可能产生的问题

          本文链接:https://www.haomeiwen.com/subject/cqisettx.html