因此,在验证用户登录详细信息后调用此代码:
func completeLogin() {
dispatch_async(dispatch_get_main_queue(), {
let tabBarController = self.storyboard!.instantiateViewControllerWithIdentifier("PostLoginTabBarController") as! UITabBarController
let tableViewController = self.storyboard!.instantiateViewControllerWithIdentifier("InformationTableViewController") as! InformationTableViewController
let tableViewNavController = UINavigationController(rootViewController: tableViewController)
tabBarController.viewControllers?.removeAll()
tabBarController.viewControllers?.append(tableViewNavController)
self.presentViewController(tabBarController, animated: true, completion: nil)
})
}
在我的故事板中:
我的PostLoginTabBarController
与另外两个ViewControllers
我的问题是:
有没有比删除View Controllers
所拥有的PostLoginTabBarController
更好的方法,然后在completeLogin()
方法中添加新的实例化的方法?我这样做的原因是因为如果我在显示PostLoginTabBarController
时切断了PostLoginTabBarController
之间的关系,它会显示黑屏,但是如果我不切断关系那么就可以了。
以下是切断关系时的示例:
当我不这样做时:
答案 0 :(得分:3)
您是否尝试过使用setViewControllers(_ viewControllers: [UIViewController]?, animated animated: Bool)
代替
tabBarController.viewControllers?.removeAll()
tabBarController.viewControllers?.append(tableViewNavController)