使用Tab Bar Controller时,是否可以打开某个button?

这个问题有点混淆,所以希望图像会更有帮助。 这是设置:

在这里输入图像说明

所以,我想要第一个视图button打开FirstViewController ,我想第二个视图button来打开SecondViewController 。 如果我将第二视图button链接到SecondViewController像这样:

在这里输入图像说明

我失去了标签导航。 如果我把这个button连接到TabViewController像这样:

在这里输入图像说明

那么它会自动打开到FirstViewController 。 除非我错过了一些东西,这似乎需要做一点额外的代码,但我似乎无法find任何解释如何做到这一点。

谢谢!

使用标识符从Viewcontroller创buildStoryboard ViewcontrollerTabBarController 。 然后在prepareforsegue方法中分配TabBarController的prepareforsegue

故事板

 @IBAction func firstBtnAction(_ sender: Any) { (sender as! UIButton).tag = 0 performSegue(withIdentifier: "tabBar", sender: sender) } @IBAction func secBtnAction(_ sender: Any) { (sender as! UIButton).tag = 1 performSegue(withIdentifier: "tabBar", sender: sender) } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if segue.identifier == "tabBar" { if let vc = segue.destination as? UITabBarController { vc.selectedIndex = (sender as! UIButton).tag } } } 

在tabViewController你需要实现以下function..

 var index : Int! @IBAction func button1(_ sender: Any) { index = 1 self.performSegue(withIdentifier: "TabBarSegue", sender: self) } @IBAction func button2(_ sender: Any) { index = 2 self.performSegue(withIdentifier: "TabBarSegue", sender: self) } override func prepare(for segue: UIStoryboardSegue, sender: Any?) { if(segue.identifier == "TabBarSegue"){ let videoController : TabBarController = segue.destination as! TabBarController videoController.index = index } 

那么你需要实现TabBarController并实现以下function。

 import UIKit class TabBarController: UITabBarController { var index : Int! override func viewDidLoad() { super.viewDidLoad() selectedIndex = index } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } }