我正在使用Swift 2.3,XCode 8.0开发iOS应用程序。我的应用程序有4个选项卡,每个选项卡 - 连接了4个不同的视图控制器。在4个视图控制器内部,我有嵌入式导航控制器。
我的要求是当用户选择标签1 - >转到ViewController 1 - >接下来,用户可以转到第二视图控制器,因为有一个导航控制器。 但是,当用户选择第二个选项卡然后返回第一个选项卡时,不会显示直接连接到选项卡1的第一个View Controller,而是显示上次使用后退按钮打开的View Controller。 如何直接移动到附加到第一个选项卡的View Controller?
答案 0 :(得分:0)
嵌入式导航控制器应自动跟踪堆栈,无论用户使用标签栏控制器在哪个选项卡中。确保每个选项卡都嵌入了自己的导航控制器,而不是将整个标签栏控制器嵌入到一个导航控制器中。
例如,如果您以编程方式实现此目的:
let viewController1 = UIViewController()
let navigationController1 = UINavigationController()
navigationController1.setViewControllers([viewController1], animated: true)
let viewController2 = UIViewController()
let tabBarController1 = UITabBarController()
tabBarController1.setViewControllers([navigationController1, viewController2], animated: true)
这里,navigationController1将跟踪哪个viewController在堆栈顶部,无论用户在标签栏控制器中的位置如何。