推送到 tabBar 时隐藏视图 - swift

Hide view while push to tabBar - swift

我有一个如下所示的视图控制器。

此视图附加了 tabBarController。 tabBarController 有 5 个 viewController,我必须从另一个页面显示第 5 个 viewController 的 tabBar。所以我使用下面的代码表示 viewController

@IBAction func onClickUserProfile(_ sender: Any) {
        let navVc = self.storyboard?.instantiateViewController(withIdentifier: "ProfileVC")as! ProfileVC
        navVc.userId = Int(self.userId)
        navVc.navigationItem.hidesBackButton = true
        navVc.tabBarController?.tabBar.isHidden = false
        self.navigationController?.pushViewController(nxtVc, animated: true)
    }

但是在执行代码后,它生成的视图控制器如下图所示。 视图经过 tabBar。任何人都可以帮助我推送到 tabBar 视图。

您需要设置从 UITabBarController 中选择的 UIViewController,这样应该可以。

self.tabBarController?.selectedViewController = self.tabBarController?.viewControllers![1]

其中 tabBarController?.viewControllers returns 当前 ViewControllers 的数组嵌入在 UITabBarController 中。

你的代码应该是这样的。

@IBAction func onClickUserProfile(_ sender: Any) {
        let vc =  self.tabBarController?.viewControllers![1] as! ProfileVC // use your index
        vc.userId = Int(self.userId)
        self.tabBarController?.selectedViewController = vc
    }

Note: Don't create an instance of the UIViewController as .instantiateViewController(withIdentifier:) use the already existed ones in the array tabBarController?.viewControllers, creating new instance will be treated as new one and gives the problem you have up there .