我从事遗留应用程序的工作,并发现我的view[Will/Did]Disappear
方法并不总是被正确触发。
情况是,我有一个(自定义)UIViewController
在 AppDelegate 中设置为 rootViewController。这个 rootViewController 有一个UINavigationController
,它上面推了两个视图控制器。当用户按下主页按钮时,用户将被注销。当他稍后返回应用程序时,应用程序调用[UINavigationController popToRootViewControllerAnimated:YES]
然后显示一个模态UIViewController
用于登录。
问题是:当我按下/弹出UINavigationController
通常情况下,我的viewWillDisappear
方法被正确调用。但是当我使用popToRootViewControllerAnimated:
方法,viewWillDisappear
不会在任何弹出的 viewController 上调用。
网上查了一下,只给出了两种可能的原因:
- 如果使用 UINavigationController 作为子视图,则必须调用view[Will/Did]Disappear你自己 http://davidebenini.it/2009/01/03/viewwillappear-not-being-called-inside-a-uinavigationcontroller/
- 没有调用正确的超级方法 https://stackoverflow.com/questions/7846932/poptoviewcontrolleranimated-does-not-animate-since-ios5
我的应用程序中没有这些建议。我不知道该去哪里寻找。有人对应用程序中做错了什么有建议吗?
该视图可能不在屏幕上。它必须在屏幕上(可见)viewWillDisappear:
被调用的方法。如果它从后台返回,则它是不可见的。
你可以尝试使用willMoveToParentViewController:
当视图控制器从其父级中删除时调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)