从 UIViewController 打开带有 Segue 的 UITabController - 如何将第三个选项卡显示为默认选项卡?
opening UITabController with Segue from UIViewController - how can I show the 3rd tab as the default one?
我有一个 swift 应用程序,在我的 UIViewController 上有一个按钮。在我的 StoryBoard
中,我将按钮附加到 UITabController
,现在当用户单击它时 - 他会被重定向到它。但是,默认情况下,他会看到第一个选项卡。有没有办法显示第三个标签?
这是我的segue选项:
是的 - 但它需要多复杂取决于你在做什么。
如果您只从第一个 UIViewController
开始,那么您只需将一些代码添加到 viewWillAppear
或 viewWillLoad
函数(记住索引是从零开始的)
override func viewWillAppear(animated: Bool)
{
self.selectedIndex = 2
}
如果您有多个入口点,您可以使用 prepareForSegue
在 tabBarController
中设置一个标志。在此示例中,我在 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
}
}
我有一个 swift 应用程序,在我的 UIViewController 上有一个按钮。在我的 StoryBoard
中,我将按钮附加到 UITabController
,现在当用户单击它时 - 他会被重定向到它。但是,默认情况下,他会看到第一个选项卡。有没有办法显示第三个标签?
这是我的segue选项:
是的 - 但它需要多复杂取决于你在做什么。
如果您只从第一个 UIViewController
开始,那么您只需将一些代码添加到 viewWillAppear
或 viewWillLoad
函数(记住索引是从零开始的)
override func viewWillAppear(animated: Bool)
{
self.selectedIndex = 2
}
如果您有多个入口点,您可以使用 prepareForSegue
在 tabBarController
中设置一个标志。在此示例中,我在 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
}
}