ios - 在 UIViewController 被解除后尝试再次呈现它
问题描述
所以我有视图控制器 A、B 和 C。从 A,我在当前上下文中模态地呈现 VC B。VC B 中有一个按钮,我从那里展示 VC C(使用 segue)
现在在解除 Viewcontroller C 时,我试图解除 VC B 并从 VC A 运行一些函数,该函数再次基于某些逻辑呈现 VC B。但在这种情况下,我得到这个错误“ Attempt to present UIViewController on UIViewController whose view is not in the window hierarchy
”
我曾尝试使用完成处理程序 dispatchQueue(after:) 来解散,但这些都不起作用。
相反,我UIButton
在 VC A 中附加了一个,它运行相同的逻辑来呈现 VC B,并且它运行正确并且没有显示任何错误。
在这种情况下我错过了什么?
解决方案
我希望这两个解决方案对您有所帮助。
我遇到了同样的问题,这两个解决方案帮助我解决了这个问题。
首先: 在 VC C viewDidDisappear 或按钮单击方法中发布通知,并将其接收器添加到 VC B 上,您希望在关闭 VC C 后关闭它。
第二: 您可以创建一个协议单击按钮时调用您的协议方法并将您的数据传递给您的 viewController。
推荐阅读
- swift - 变量未更新 - func 采用默认变量
- swift - SwiftUI 地图相机运动
- javascript - 在包中包含 vscode 语言扩展
- javascript - 未捕获的 ReferenceError - 黄瓜节点 js
- javascript - 卡在 dropdown.js
- ios - 无限循环和线程 1:EXC_BAD_ACCESS(代码=2,地址=0x7ffeedaec488)
- assembly - 如何在 IBMPC BIOS 图形模式 16 (INT 10H/AX=0010H) 中启用文本光标?
- visual-c++ - 如何绘制这个圆而不是 Bresenham 的圆算法
- c++ - LINUX 上的 Node.JS 原生插件
- sharepoint - 将模板从一个 SharePoint 网站复制到另一个