swift tabBarController selectedIndex无效

时间:2018-06-07 20:07:55

标签: swift uitabbarcontroller

如何在具有5个以上视图控制器的标签栏控制器上手动调用标签索引?

我正在尝试手动调用选项卡索引但它似乎没有工作。我有一个带有6个视图控制器的tabview控制器。我正在使用selectedIndex来调用特定的选项卡。在iPhone上,这适用于前4个选项卡,但不适用于选项卡5和6.它可以在iPad上正常工作。

这就是我正在使用的:

let getViewController = self.storyboard?.instantiateViewController(withIdentifier: "tabBar") as! UITabBarController
getViewController.selectedIndex = 5
self.navigationController?.present(getViewController, animated: true)

这会导致标签栏显示第一个标签,而不是第6个标签。由于它在iPad上工作正常,我认为“更多”选项卡使tabindex不起作用

非常感谢任何帮助!

2 个答案:

答案 0 :(得分:0)

致电selectedViewController而非selectedIndex

答案 1 :(得分:0)

可能是因为视图尚未加载,因此尚未设置IBOutlets和子视图控制器。

您可以在设置selectedIndex之前尝试调用getViewController.loadViewIfNeeded()。或者创建一个扩展UITabBarController的类,并在viewDidLoad中设置所需的selectedIndex

我今天一直在使用UITabBarController并使用selectedIndex而没有任何问题。