首页 文章

单击选项卡栏时关闭当前导航控制器

提问于
浏览
0

我有一个标签栏控制器,在家庭视图控制器中我有一个导航控制器 .

-Tab Bar Controller

  • HomeVC

--- VC1导航推 - > VC2

在VC1导航栏中没有隐藏但VC2内部是隐藏的 . 我用viewwillappear控制它,viewwilldisappear .

override func viewWillAppear(_ animated: Bool) {
    navigationController?.navigationBar.barStyle = .blackTranslucent
}
override func viewWillDisappear(_ animated: Bool) {
    navigationController?.navigationBar.isHidden = false
}

但是回到VC1没有滑动,我的意思是点击标签栏homeVC图标隐藏导航栏 . 我想解雇或弹出当前的viewcontroller并转回VC1 .

1 回答

  • 1

    所以你可以通过 popToRootViewController UINavigationController 来做到这一点 . 你必须在 UITabBarDelegatetabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) 方法中处理这个问题 .

    override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
        if let rootView = self.viewControllers!["Index of VC1 Controller"] as? UINavigationController {
            rootView.popToRootViewController(animated: false)
        }
    }
    

相关问题