ios - 从 NavigationController 后退按钮返回多个 ViewController
问题描述
当我单击 NavigationController 上的后退按钮时,我想返回两个 ViewController 而不是一个。
override func viewWillDisappear(_ animated: Bool)
{
super.viewWillDisappear(animated)
if self.isMovingFromParent
{
let vc = self.navigationController?.viewControllers[1] as! MyViewController
self.navigationController?.popToViewController(vc, animated: false)
}
}
这几乎按照我想要的方式工作。更改 self.navigationController?.viewControllers[1] 让我可以转到堆栈中的任何 ViewController。我唯一的问题是它总是在直接转到我弹出的 ViewController 之前短暂地显示最顶层的 viewController。如何阻止它显示中间 ViewController?
我的问题是:
VC[0] → VC[1] → VC[2] → VC[3]
从 3 我想直接返回到 1 而不必显示 2。我想从 NavigationController 后退按钮执行此操作。
解决方案
如果堆栈中有 viewController,则可以使用类名返回到它。
let viewControllers: [UIViewController] = self.navigationController!.viewControllers ;
for aViewController in viewControllers {
if(aViewController is HomeViewController){
self.navigationController!.popToViewController(aViewController, animated: true);
}
}
推荐阅读
- visual-studio - MFC:如何首先显示欢迎对话框?
- python - 确定不超过某个数字的所有正奇数的总和
- python - Django MEDIA_URL,无法获取图像
- ios - 如何从 React Native 分享到 Instagram?
- machine-learning - XGBoost - scale_pos_weight 和 class_weights 之间的区别
- python - 是否可以使用 Selenium 获取页面源,然后使用 lxml 通过 xpath 抓取数据?
- heroku - 如何使用 Netlify 和 Heroku 实现 NameCheap DNS
- ansible - Ansible - 如果不满足条件,如何跳过注册变量
- azure - Azure Function App 是否同时运行多个实例?
- c# - 如何将内容链接文件复制到项目目录而不会导致重复