IOS界面生命周期

本文详细介绍了iOS中界面生命周期的关键步骤,包括loadView、viewDidLoad和viewDidUnload(iOS6后弃用)。理解这些方法的调用时机对于优化APP性能和用户体验至关重要。在内存管理中,loadView用于加载视图,viewDidLoad进行视图初始化,而viewDidUnload在iOS早期版本中用于释放视图资源以应对内存警告。当视图重新显示时,系统会重新调用loadView和viewDidLoad。此外,还提到了其他如viewWillAppear和viewDidDisappear等生命周期方法。
摘要由CSDN通过智能技术生成

在布局界面的时候、什么时候做什么事、有助于提高app的流畅性和用户体验度


loadView、viewDidLoad及viewDidUnload的关系

一、loadView

永远不要主动调用这个函数。view controller会在view的property被请求并且当前view值为nil时调用这个函数。如果你手动创建view,你应该重载这个函数。如果你用IB创建view并初始化view controller,那就意味着你使用initWithNibName:bundle:方法,这时,你不应该重载loadView函数。

这个方法的默认实现是这样:先寻找有关可用的nib文件的信息,根据这个信息来加载nib文件,如果没有有关nib文件的信息,默认实现会创建一个空白的UIView对象,然后让这个对象成为controller的主view。

所以,重载这个函数时,你也应该这么做。并把子类的view赋给view属性(property)(你create的view必须是唯一的实例,并且不被其他任何controller共享),而且你重载的这个函数不应该调用super。

如果你要进行进一步初始化你的views,你应该在viewDidLoad函数中去做。在iOS 3.0以及更高版本中,你应该重载viewDidUnload函数来释放任何对view的引用或者它里面的内容(子view等等)。

这个网上的资料都说的很不全面,尤其是蓝色字部分。

二、viewDidLoad

这个函数在controller加载了相关的views后被调用,而不论这些views存储在nib文件里还是在loadView函数中生成。而多数情况下是做nib文件的后续工作。

三、viewDidUnload(在ios6之后就不被调用了 、可以不做了解)
四、结论

所以流程应该是这样:

(loadView/nib文件)来加载view到内存 ------>viewDidLoad函数进一步初始化这些view ------>内存不足时,调用viewDidUnload函数释放views

---->当需要使用view时有回到第一步

如此循环

 

viewWillAppear:            视图即将可见时调用。默认情况下不执行任何操作

viewWillDisappear::       视图被驳回时调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作

viewDidDisappear:         视图被驳回后调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作

viewDidAppear:             视图已完全过渡到屏幕上时调用

viewDidLoad:                 在视图加载后被调用,如果是在代码中创建的视图加载器,他将会在loadView方法后被调用,如果是从nib                                         视图页面输出,他将会在视图设置好后后被调用。

viewDidUnload:              当系统内存吃紧的时候调用viewDidUnload

dealloc:                          视图被释放的时候调用


参考:http://www.dreamingwish.com/dream-2011/correct-online-information-error-loadview-viewdidload-viewdidunload.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值