如何在Unwind segue中切换选项卡视图

时间:2017-05-19 22:06:35

标签: ios swift

我有一个带有3个视图的主标签栏控制器。

  1. 主视图
  2. 历史记录视图
  3. 菜单视图
  4. 当我的应用程序首次加载时,选项卡栏控制器会检查用户是否已登录,如果不是,则会切换到登录视图。用户登录后,我从登录视图中调用Unwind Segue,如下所示:

    self.performSegueWithIdentifier("unwindToTabBarFromSignInView", sender: self)
    

    这会让用户进入我的标签栏控制器中的菜单视图的Unwind Segue,因为这是带有Logout按钮的View,因此它是最后呈现给用户的View。但是,我想在用户登录后显示主视图而不是菜单视图。为了实现这一点,我在Unwind Segue中有以下代码。不幸的是,它似乎没有任何效果,一旦用户登录而不是主视图,用户就会被带回菜单视图。

    @IBAction func unwindToTabBarFromSignInView(segue: UIStoryboardSegue) {
            tabBarController?.selectedIndex = 0
    }
    

1 个答案:

答案 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的主要标签。