我正在使用UITabBarController,我想在视图中使用一个按钮移动到下一个视图,而不必单击该栏。 我怎么能以编程方式做到这一点?
class PlayTableBarViewController: UITabBarController {
override func viewDidLoad() {
super.viewDidLoad()
}
func nextView() {
print(self.viewControllers!)
self.selectedViewController = self.viewControllers![self.selectedIndex + 1]
self.show(self.selectedViewController!, sender: nil)
}
}
class StartVC: UIViewController {
private var _fatherVC: PlayTableBarViewController?
var fatherVC: PlayTableBarViewController {
if _fatherVC == nil {
_fatherVC = self.storyboard?.instantiateViewController(withIdentifier: "playViewController") as? PlayTableBarViewController
}
return _fatherVC!
}
@IBAction func backToGame(_ sender: UIButton) {
fatherVC.nextView()
}
}
答案 0 :(得分:1)
使用UITabBarController的selectedIndex
属性(直到您希望UITabBar
中有更多部分。
自: https://developer.apple.com/documentation/uikit/uitabbarcontroller/1621171-selectedindex
设置此属性会将选定的视图控制器更改为一个 在viewControllers数组中的指定索引处。选择 更多的导航控制器本身,你必须改变的价值 改为selectedViewController属性。
class PlayTableBarViewController: UITabBarController {
func nextView() {
self.selectedIndex = self.selectedIndex + 1
}
}
答案 1 :(得分:0)
我在初始化_fatherVC
时发现了错误。这个:
_self.storyboard?.instantiateViewController(withIdentifier: "playViewController")
as? PlayTableBarViewController_
应该是:
_fatherVC = self.tabBarController as? PlayTableBarViewController
现在它完美无缺。