UITabBarController - 如何切换到特定类型的选项卡
UITabBarController - How to switch to tab of a particular type
我有一个由自定义 class(例如 HomeTabBarController
)实现的 UITabBarController
,在我的情节提要中我附加了它 3 ViewController
作为它的子项。
我知道我可以在 UITabBarController
:
中使用 select 特定的视图控制器
selectedIndex = 2
但我想让我的项目更灵活一点,所以我想 select 子选项卡只知道它的 类型 ,而不是它的位置。我该怎么做?
如 Whosebug 中所述documentation我将回答我自己的问题。
让我们举个例子,你有一个 UITabBarController
和 3 childs:
HomeTabBarController
CustomAViewController
CustomBViewController
CustomCViewController
在您的 HomeTabBarController
控制器中,您可以像这样放置一个函数:
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
child。
然后在任何 ViewController
child 中你可以做类似的事情来切换标签:
(self.tabBarController as! HomeTabBarController).selectCustomATab()
完全忽略选项卡数组中的 CustomAViewController
位置。
设置你的标签栏索引值
tabBarController?.selectedIndex = 2
我有一个由自定义 class(例如 HomeTabBarController
)实现的 UITabBarController
,在我的情节提要中我附加了它 3 ViewController
作为它的子项。
我知道我可以在 UITabBarController
:
selectedIndex = 2
但我想让我的项目更灵活一点,所以我想 select 子选项卡只知道它的 类型 ,而不是它的位置。我该怎么做?
如 Whosebug 中所述documentation我将回答我自己的问题。
让我们举个例子,你有一个 UITabBarController
和 3 childs:
HomeTabBarController
CustomAViewController
CustomBViewController
CustomCViewController
在您的 HomeTabBarController
控制器中,您可以像这样放置一个函数:
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
child。
然后在任何 ViewController
child 中你可以做类似的事情来切换标签:
(self.tabBarController as! HomeTabBarController).selectCustomATab()
完全忽略选项卡数组中的 CustomAViewController
位置。
设置你的标签栏索引值
tabBarController?.selectedIndex = 2