作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
给定:
presentingViewController
属性除外)dismiss
并且什么都不做我想要实现的目标:
限制:
到目前为止我发现了什么:
解散(动画:完成:)
according to the documentation将调用转发给它的 presentingViewController
。但似乎 dismiss(animated:completion:)
被不 调用,而是一个私有(private)方法 _performCoordinatedPresentOrDismiss:animated:
。presentingViewController
具有误导性。它说“呈现的 View Controller 将此属性设置为呈现它的 View Controller ”,但事实并非如此。在 iOS 11 中,这将始终指向 present
被调用的 VC 的根父 VC。同样的 documentation on presentedViewController
具有误导性。它说“调用该方法的 View Controller 将此属性设置为它呈现的 View Controller ”,这不是全部。调用 present
的 VC 层次结构中的每个 VC(其所有父 VC 和子 VC)都将指向相同的 presentedViewController
。最佳答案
在您的 Controller A 中,将其命名为 UINavigationControllerDelegate
并使用 navigationController:didShowViewController
标记 Controller B 的呈现 (isControllerBisPresented = true
)。当 B 的 viewDidAppear
时,检查 isControllerBisPresented
是否为真。
关于ios - PresentingViewController 如何收到其 PresentedViewController 自行关闭的通知?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47350720/
我发现以下帖子非常有帮助: How to pickle yourself? 但是,此解决方案的局限性在于,重新加载类时,它不会以其“运行时”状态返回。即它将重新加载所有变量等以及类在转储时的一般状态.
我是一名优秀的程序员,十分优秀!