我有一个UITabBarController
由自定义类(例如HomeTabBarController
)实现,并且在我的故事板中我已经附加了3 ViewController
作为它的孩子。
我知道我可以在UITabBarController
中使用,以便选择特定的视图控制器:
selectedIndex = 2
但是我想让我的项目更灵活,所以我想选择一个子标签,只知道它的类型,而不是它的位置。我该怎么办?
答案 0 :(得分:0)
正如StackOverflow documentation中所述,我将回答我自己的问题。
让我们举个例子,你有一个有{3个孩子的UITabBarController
:
HomeTabBarController
CustomAViewController
CustomBViewController
CustomCViewController
在HomeTabBarController
控制器中,你可以输入一个func:
func selectCustomATab() {
var tab = 0
for v in viewControllers! {
for k in v.childViewControllers {
if k is CustomAViewController {
tab = viewControllers!.indexOf(v)!
}
}
}
selectedIndex = tab
}
总而言之,你可以随心所欲地重复每个ViewController
孩子。
然后在任何ViewController
孩子中,您可以执行类似的操作以切换标签:
(self.tabBarController as! HomeTabBarController).selectCustomATab()
完全忽略标签数组中的CustomAViewController
位置。
答案 1 :(得分:0)
设置标签栏索引值
tabBarController?.selectedIndex = 2