从UIViewController打开带有Segue的UITabController - 如何将第三个选项卡显示为默认选项卡?

时间:2016-04-12 14:00:32

标签: swift segue uistoryboard uistoryboardsegue uitabcontroller

我有一个快速的应用程序,在我的UIViewController上我有一个按钮。在我的StoryBoard我将按钮附加到UITabController,现在当用户点击它时,他会被重定向到它。但是,默认情况下,他会看到第一个选项卡。有没有办法显示第三个标签?

这是我的选择:

enter image description here

1 个答案:

答案 0 :(得分:1)

是的 - 但它需要多么复杂取决于你正在做什么。

如果您只是从第一个UIViewController开始,那么您只需向viewWillAppearviewWillLoad函数添加一些代码(记住索引从零开始)

override func viewWillAppear(animated: Bool)
{
    self.selectedIndex = 2
}

如果您有多个入口点,则可以使用prepareForSeguetabBarController中设置标记。在此示例中,UIViewController上有两个按钮,tag值设置为100,而200

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "TabBarSegue"
    {
        if let destinationVC = segue.destinationViewController as? myTabBarViewController
        {
            if sender!.tag == 100
            {
                destinationVC.jumpToTab2 = true
            }
            if sender!.tag == 200
            {
                destinationVC.jumpToTab2 = false
            }

        }
    }
}

然后在TabBarController中,我定义了一个标记jumpToTab2

class myTabBarViewController: UITabBarController
{
    var jumpToTab2 : Bool = false

    override func viewWillAppear(animated: Bool)
    {
        if jumpToTab2
        {
            self.selectedIndex = 2
        }
        jumpToTab2 = false // reset the flag before next time
    }
}