我有一个带有3个视图的主标签栏控制器。
当我的应用程序首次加载时,选项卡栏控制器会检查用户是否已登录,如果不是,则会切换到登录视图。用户登录后,我从登录视图中调用Unwind Segue,如下所示:
self.performSegueWithIdentifier("unwindToTabBarFromSignInView", sender: self)
这会让用户进入我的标签栏控制器中的菜单视图的Unwind Segue,因为这是带有Logout按钮的View,因此它是最后呈现给用户的View。但是,我想在用户登录后显示主视图而不是菜单视图。为了实现这一点,我在Unwind Segue中有以下代码。不幸的是,它似乎没有任何效果,一旦用户登录而不是主视图,用户就会被带回菜单视图。
@IBAction func unwindToTabBarFromSignInView(segue: UIStoryboardSegue) {
tabBarController?.selectedIndex = 0
}
答案 0 :(得分:2)
奇怪的是,这不起作用。但我有一个更简单的解决方案。
展开UITabBarController
时,每个标签ViewController
都可以实现自己的展开@IBAction
,您可以直接进入所需的标签。
在MainViewController
实施此内容:
@IBAction func unwindToMainViewController(_ segue: UIStoryboardSegue) {
print("back in MainViewController")
}
通过 control 创建展开segue - 从 ViewController 图标拖动到退出图标并为其指定标识"unwindToMain"
。用户登录后,只需致电:
self.performSegueWithIdentifier("unwindToMain", sender: self)
,您将返回UITabBarController
的主要标签。