Да - но насколько сложным должно быть, зависит от того, что вы делаете.
Если вы только когда-либо перейти от первого 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
}
}