0

У меня есть быстрое приложение, и на моем UIViewController у меня есть кнопка. В моем StoryBoard я прикрепил кнопку к UITabController, и теперь, когда пользователь нажимает на нее - он перенаправляется на нее. Но по умолчанию он представлен 1-й вкладкой. Есть ли способ показа третьей вкладки?открытие UITabController с Segue от UIViewController - как я могу показать 3-ю вкладку как по умолчанию?

Это вариант моего Segue:

enter image description here

ответ

1

Да - но насколько сложным должно быть, зависит от того, что вы делаете.

Если вы только когда-либо перейти от первого 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 
    } 
}