导航到UITabBarController上的某个选项卡

时间:2017-07-21 18:06:54

标签: ios objective-c uitableview uitabbarcontroller uitabbar

在Objective-C Xcode项目中,我目前在标签栏(a,b,c,d,e)上设置了5个不同的ViewControllers到5个不同的标签。每当我尝试从我的应用程序中的视图(而不是a-e)导航回此标签栏控制器时,我只能导航到" a" TabBarVC的视图(第一个视图)。如何导航以从其他视图说出此标签栏的c视图?

1 个答案:

答案 0 :(得分:0)

您应该导航到TabBarVC传递参数initialIndex,告诉我应该显示哪个标签。然后覆盖viewWillAppear(_:)方法并将selectedIndex设置为initialIndex0..<numberOfControllers)以设置最初选择的标签。

class TabBarVC: UITabBarController {

    ...

    var initialIndex: Int?

    ...

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        if let initialIndex = initialIndex, let count = self.viewControllers?.count, initialIndex < count {
            self.initialIndex = nil
            self.selectedIndex = initialIndex
        }
    }
}

如果您使用的是segue,可以在源控制器中完成:

override func prepare(for segue: UIStoryboardSegue, sender: Any?)

否则,只需在呈现控制器之前设置initialIndex