首页 > 解决方案 > 单击按钮时加载 Tabbarcontroller

问题描述

我正在做一个应用程序,它是一个带有标签栏项目(搜索、登录、更多)的标签栏控制器应用程序。成功登录后,用户标签栏更改为(搜索、帐户、更多),并在更多中使用注销按钮。问题是当单击注销时它应该加载SearchViewController,如果再次在选项卡栏中单击登录,则不会显示相应的登录页面。它显示黑屏。

@IBAction func btnLogOutClicked(_ sender: UIButton) 
{
    let hm = SearchVC()
    let tabOneBarItem = UITabBarItem(title: "Search", image: UIImage(named: "TabHome.png"), selectedImage: UIImage(named: "TabHome.png"))
    hm.tabBarItem = tabOneBarItem

    let lgn = LoginVC()
    let tabOneBarItem1 = UITabBarItem(title: "Login", image: UIImage(named: "tabAcc.png"), selectedImage: UIImage(named: "tabAcc.png"))
    lgn.tabBarItem = tabOneBarItem1

    let mropt = MoreVC()
    mropt.tabBarItem = UITabBarItem(tabBarSystemItem: .more, tag: 2)

    let controllers = [hm, lgn, mropt]
    self.tabBarController?.viewControllers = controllers
    self.tabBarController?.selectedIndex = 0
}

当单击注销并单击选项卡栏项目应显示相应的视图控制器时,我将如何显示选项卡栏控制器。

标签: iosiphoneswiftuitabbarcontrollerxcode8

解决方案


在给每个 vc 一个故事板标识符之后,您必须像这样加载每个 vc

let hm = storyBoard.instantiateViewController(withIdentifier: "SearchVC") as! SearchVC 

这个

let hm = SearchVC()

在以编程方式创建 vc 时使用,这是黑屏的主要原因,因为 vc 在没有布局的情况下加载


推荐阅读