UITabBarController - 如何切换到特定类型的选项卡

时间:2016-04-08 07:46:24

标签: ios xcode swift uiviewcontroller uitabbarcontroller

我有一个UITabBarController由自定义类(例如HomeTabBarController)实现,并且在我的故事板中我已经附加了3 ViewController作为它的孩子。

我知道我可以在UITabBarController中使用,以便选择特定的视图控制器:

selectedIndex = 2

但是我想让我的项目更灵活,所以我想选择一个子标签,只知道它的类型,而不是它的位置。我该怎么办?

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