iphone – viewdidunload根本没有被调用

iphone – viewdidunload根本没有被调用,第1张

概述我的问题是这样的: >父类加载子视图. > Child使用“removeFromSuperView”在 *** 作期间自行删除. >当子项被删除时,父类会获得委托调用,从而使子对象为零. 仍然没有调用子类的viewdidunload! 正如其他人提到的,viewDidUnload是UIViewController的一个方法.不能保证被叫.当应用程序释放控制器的视图以释放内存时,它仅在低内存情况下被调用.这 我的问题是这样的:

>父类加载子视图.
> Child使用“removeFromSuperVIEw”在 *** 作期间自行删除.
>当子项被删除时,父类会获得委托调用,从而使子对象为零.

仍然没有调用子类的vIEwdIDunload!

解决方法 正如其他人提到的,vIEwDIDUnload是UIVIEwController的一个方法.不能保证被叫.当应用程序释放控制器的视图以释放内存时,它仅在低内存情况下被调用.这使您有机会释放您可能保留为控制器属性的任何视图的子视图.

如果你在视图控制器的视图上调用removeFromSupervIEw,那么你可能在它没有设计用来处理的上下文中使用UIVIEwController.视图控制器旨在管理全屏视图.预计这些视图将在iPhone上的少数几种情况下呈现:

>作为窗口根视图控制器的全屏视图
>作为UINavigationController管理的屏幕层次结构中的全屏视图
>作为选项卡中显示的全屏视图
>使用presentModalVIEwController呈现全屏视图:动画:

只要您在这些上下文中使用视图控制器(以及iPad上的其他几个上下文),您就可以通过loadVIEw,vIEwDIDLoad,vIEwWillAppear:animated:,vIEwDIDAppear:animated:,vIEwWilldisappear可靠地管理视图的生命周期. :animated:和vIEwDIDdisappear:animated:和vIEwDIDUnload方法(同样,请记住vIEwDIDUnload不会总是被调用).

您通常应该将视图控制器的视图传递给addSubvIEw的唯一时间是将根视图控制器的视图添加到窗口时.如果您想尝试使用嵌套视图控制器来管理非全屏子视图,则必须在适当的时间从全屏视图的控制器中手动调用其vIEwWill / DIDAppear / disappear:animated:和vIEwDIDUnload方法.

总结

以上是内存溢出为你收集整理的iphone – viewdidunload根本没有被调用全部内容,希望文章能够帮你解决iphone – viewdidunload根本没有被调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1085918.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存