ios - 如何通过一个导航控制器和另一个导航控制器导航回来?
问题描述
在这里,我有:
SplitViewController >> 1. NavigationController >> MainViewController >> NavigationController>> DetailViewControllerA
上面的 SplitViewController 的另一个链接
NavigationController >> mainDetailViewController >> NavigationController >> DetailViewControllerA
我想DetailViewControllerA
在导航时手动创建一个后退按钮mainDetailViewController
。DetailViewControllerA
但是如何从to回去mainDetailViewController
?
当我使用
_ = navigationController?.popViewController(animated: true)
这只是nil
谢谢。
解决方案
问题出在这里:
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
后退按钮按下(如果使用手动按钮,否则默认情况下后退按钮将显示弹出功能)
推荐阅读
- python - 并排绘制多个混淆矩阵
- sql-server - 如果有使用该用户运行的 SSIS 包,我从 Active Directory 重置 SQL Server 密码会发生什么
- javascript - JS - 满足条件时将对象从数组复制到新数组[编辑]
- firebase - Firestore,检查 valueChanges() 期间更改了哪些字段
- css - CSS:如何将一个 div 移到另一个上方?
- ios - 更新后无法打开 Realm Studio - Realm 文件当前在另一个进程中打开 - Mac 和 Realm Swift
- performance - 有效地循环子阵列
- c++ - libwebsockets:待处理的消息
- javascript - 如何使用 axios.delete() 请求发送 ID
- python - socket.io 回调中的 Flask 渲染模板