首页 > 解决方案 > 如何通过一个导航控制器和另一个导航控制器导航回来?

问题描述

在这里,我有:

SplitViewController >> 1. NavigationController >> MainViewController >> NavigationController>> DetailViewControllerA

上面的 SplitViewController 的另一个链接

NavigationController >> mainDetailViewController >> NavigationController >> DetailViewControllerA

我想DetailViewControllerA在导航时手动创建一个后退按钮mainDetailViewControllerDetailViewControllerA但是如何从to回去mainDetailViewController

当我使用

_ = navigationController?.popViewController(animated: true)

这只是nil

谢谢。

标签: iosswiftuinavigationcontroller

解决方案


问题出在这里:

NavigationController >> MainViewController >> NavigationController>> DetailViewControllerA 

无需分配DetailViewControllerA新的NavigationController

应该是这样的:

NavigationController >> MainViewController >> DetailViewControllerA 

当你想推到DetailViewControllerA屏幕上时,你只需要DetailViewControllerA像这样推你。

let vc = UIStoryboard.init(name: "Main", bundle: Bundle.main).instantiateViewController(withIdentifier: "DetailViewControllerA") as! DetailViewControllerA
self.navigationController?.pushViewController(vc, animated: true)

然后在 中DetailViewControllerA,您可以轻松调用popViewController后退按钮按下(如果使用手动按钮,否则默认情况下后退按钮将显示弹出功能)


推荐阅读