使用Tab Bar Controller时,是否可以打开某个button?
这个问题有点混淆,所以希望图像会更有帮助。 这是设置:
所以,我想要第一个视图button打开FirstViewController
,我想第二个视图button来打开SecondViewController
。 如果我将第二视图button链接到SecondViewController
像这样:
我失去了标签导航。 如果我把这个button连接到TabViewController
像这样:
那么它会自动打开到FirstViewController
。 除非我错过了一些东西,这似乎需要做一点额外的代码,但我似乎无法find任何解释如何做到这一点。
谢谢!
使用标识符从Viewcontroller
创buildStoryboard Viewcontroller
到TabBarController
。 然后在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() } }