使用tabviewcontroller和导航控制器segue不会显示底部选项卡

时间:2017-06-15 03:45:31

标签: ios swift xcode storyboard uistoryboardsegue

当我的iOS应用加载时,有一个标签视图控制器加载了3个标签:charge, location, more。当您点击更多时,可以选择登录。当点击登录时 - > signviewcontroller会显示用户选择其Google个人资料登录的位置 - >一旦成功,他们应该被引导到Charge页面。如果用户未登录,这是应用程序第一次加载,则应显示正常选项卡 - >充电,位置,更多。

问题是我不确定我是否正确对齐了TabViewControllerNavigationController。点击登录后,Signviewcontroller会显示,我也会进入ChargeViewController,但我看不到标签和导航栏项目名称,尽管有一个空白的导航栏。

这是我的segue代码:

self.performSegue(withIdentifier: "signin_complete", sender: self)

这是我的故事板布局,试图解决问题并显示如下: enter image description here

我应该以不同方式布置视图控制器吗?我读到我需要添加一个可以修复底部选项卡的导航控制器,但它没有。

GIF的外观和注意最后一页的费用如何在底部没有显示任何标签。 gif link

1 个答案:

答案 0 :(得分:0)

您应该删除介于SignviewcontrollerNavigation Controller - ChargeViewController之间的segue。然后Tabbar将出现在此导航控制器上,如Location

这是我的例子:

With Segue Without TabBar

Without Segue With TabBar

然后你应该创建自己的UITabBarController类。之后,您可以在tabBar didSelect中控制视图控制器。检查签名状态和根SignViewController或ChargeViewController。

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    let nav: UINavigationController = self.tabBarController?.viewControllers?.first as! UINavigationController
    //get sign or charge view controller
    nav.setViewControllers([sign or charge], animated: true)
}