ios - 将自定义目的地分配给popToRootViewController swift 4
问题描述
我正在使用 navigationController?.popToRootViewController(animated: true) 将当前视图关闭为上一个视图。我的视图控制器关系如下所示。
VC1->VC2
VC1->VC3
VC3->VC2
每当客户端在 VC2 中时,我都想将导航控制器弹回 VC1。当 rootviewcontroller 设置为 VC1 时,这可以正常工作。但是,当客户端使用 VC3 的 segue 进入 VC2 时,rootviewcontroller 设置为 VC3,导航控制器弹出到 VC3。
我试图像这样更改rootviewcontroller。
// set root view controller
let appdelegate = UIApplication.shared.delegate as! AppDelegate
let mainStoryboard: UIStoryboard = UIStoryboard(name: "Main", bundle: nil)
let VC1 = mainStoryboard.instantiateViewController(withIdentifier: "VC1") as! FirstViewController
appdelegate.window!.rootViewController = VC1
navigationController?.popToRootViewController(animated: true)
但这实际上甚至在执行“navigationController?.popToRootViewController(animated: true)”行之前将视图控制器返回到根视图控制器 (VC1),因此没有动画。
有没有办法在不立即显示根视图控制器的情况下设置导航控制器的根视图控制器?
解决方案
如果你放appdelegate.window!.rootViewController = VC1
了,控制器堆栈已经死了,你在堆栈中只有一个单独的控制器,因此你不能申请popToRootViewController
。
如果这是您需要的导航,也许这篇文章可以帮助您:
推荐阅读
- algorithm - 最大匹配算法改进
- python - 我做错了什么使我的 Keras model.fit 不断抛出错误吗?
- python - 查找坐标列表是否形成循环
- java - 如何使用 JUnit 4 在 Java 控制台应用程序中测试循环的 mainManu 方法?
- css - 覆盖网页的 CSS
- php - Laravel 分页:为什么有些页面返回未定义的偏移量:0?
- python - 从组合框中选择数据位
- terraform - 地形 | 从 Cloud SQL 检索(客户端密钥)证书
- swift - 如何等待递归直到函数完成执行
- python-3.x - 非递归最高效的 Big-O 置换算法 Python3(非内置)