ios - 调用 popToRootViewControllerAnimated 时未调用 viewWillDisappear

标签 ios objective-c uiviewcontroller

我在处理遗留应用程序,发现我的 view[Will/Did]Disappear 方法并不总是正确触发。

情况是,我有一个(自定义)UIViewController 在 AppDelegate 中设置为 rootViewController。这个 rootViewController 有一个 UINavigationController,上面有两个 View Controller 。当用户按下主页按钮时,用户将注销。当他稍后返回应用程序时,应用程序调用 [UINavigationController popToRootViewControllerAnimated:YES],然后显示用于登录的模态 UIViewController

问题是:当我在 UINavigationController 上正常推送/弹出时,我的 viewWillDisappear 方法被正确调用。但是当我使用 popToRootViewControllerAnimated: 方法时,不会在弹出的任何 viewController 上调用 viewWillDisappear

网上查了一下,只给出了两个可能的原因:

这些建议都不是我的应用程序的情况。我不知道去哪里看。有人对应用程序中的错误有什么建议吗?

最佳答案

View 可能不在屏幕上。它必须在屏幕上(可见)才能调用 viewWillDisappear: 方法。如果它从后台返回,则不可见。

您可以尝试使用 willMoveToParentViewController:,当 View Controller 从其父 View Controller 中移除时调用它。

关于ios - 调用 popToRootViewControllerAnimated 时未调用 viewWillDisappear,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17954402/

相关文章:

ios - 将 XML Dsig 格式转换为 DER ASN.1 公钥

ios - Papyrus 字体存在于 iPad 上,但不存在于 iPhone 上

Objective-c,将 NSURLConnection 结果传递给 View Controller

ios - 如何在 NSMutableArray 中找到 Id 的位置

ios - XCode 中需要的基本 Plist 帮助

ios - 滑入/滑出 subview Controller 在 Swift 的父 View Controller 上部分可见

ios - 无法从 Facebook API 获取数据

c# - Xamarin-ios 小部件无法加载

objective-c - 使用 iOS 7 UIViewController 过渡动画放松超过 1 个 segue

ios - 使用 NSLayoutContraints 添加第二个 subview Controller ,始终将其放置在导航栏下方,而不是导航栏之后