我有一个带有2个标签的TabBarController,每个标签都是带有NavigationControllerUIViewController

而且,当我在第一个选项卡上执行某些操作时,我需要能够将第二个选项卡上的UIView之一移至堆栈顶部。

如何从第一个选项卡到达第二个选项卡导航堆栈?

我不想切换到第二个选项卡,仅将其UIview移至其堆栈的顶部

ps。例如,

    TabbarController
       Tab1
         NavigationController1
          ViewController1
          ViewController2
       Tab2
         NavigationController2
          ViewController3


因此从ViewController3可以将ViewController2放到堆栈的顶部NavigationController1

最佳答案

ViewController3获取嵌入在第一个选项卡(NavigationController1)中的导航控制器的参考,然后尝试将其向下转换为UINavigationController。然后只需在此导航控制器上调用popToRootViewController(animated:)

if let navigationController = tabBarController?.viewControllers?[0] as? UINavigationController {
    navigationController.popToRootViewController(animated: true) // or `animated: false`
}

10-08 08:06