我有一个带有2个标签的TabBarController
,每个标签都是带有NavigationController
的UIViewController
。
而且,当我在第一个选项卡上执行某些操作时,我需要能够将第二个选项卡上的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`
}