iOS 视图控制器的方法执行顺序

1 alloc

 视图开始创建时, 需要开辟一个新的内存空间, 这时就需要alloc申请一块新的内存空间.

2 init

 初始化视图.

3 ViewLoad, ViewDidLoad

   通过英文就能明确到,  这两个方法的字面意思是, 正在加载视图,视图已经加载. 这两个方法一般是成对出现的. 视图的基本布局和属性基本都在ViewDidLoad中进行输入, 视图中的控件方法,如tableview的创建都要在这里调用.

   值得一提的是你在控制器中实现了loadView方法,那么你可能会在应用运行的某个时候被内存管理控制调用。 如果设备内存不足的时候, view 控制器会收到didReceiveMemoryWarning的消息。 默认的实现是检查当前控制器的view是否在使用。如果它的view不在当前正在使用的view hierarchy里面,且你的控制器实现了loadView方法,那么这个view将被release, loadView方法将被再次调用来创建一个新的view。


4 - (void)viewWillAppear:(BOOL)animated;

      字面上的意思: 视图即将出现. 系统在载入所有数据后,将会在屏幕上显示视图,这时会先调用这个方法。通常我们会利用这个方法,对即将显示的视图做进一步的设置。例如,我们可以利用这个方法来设置设备不同方向时该如何显示。

      另外一方面,当APP有多个视图时,在视图间切换时,并不会再次载入viewDidLoad方法,所以如果在调入视图时,需要对数据做更新,就只能在这个方法内实现了。所以这个方法也非常常用。

    比如最近我在做豆瓣项目的时候, 一个很实用的例子, 当用户界面登录之后, 原本登陆的按钮就要更改为注销按钮, 而登录后push到的界面依然是原来的那个view, 这时需要更新的buttontitle就要将原来的"登录"改变为"注销", 在ViewWillAppear中直接更改即可.


5 - (void)viewDidAppear:(BOOL)animated;

      字面上的意思: 视图已经出现. 有时候,由于一些特殊的原因,我们不能在viewWillApper方法里,对视图进行更新。那么可以重写这个方法,在这里对正在显示的视图进行进一步的设置。


6 - (void)viewWillDisappear:(BOOL)animated; 

      这是视图即将消失时进行调用的方法 在视图变换时,当前视图在即将被移除、或者被覆盖时,会调用这个方法进行一些善后的处理和设置。

      由于在IOS4之后,系统允许将APP在后台挂起,所以在按了Home键之后,系统并不会调用这个方法,因为就这个APP本身而言,APP显示的view,仍是挂起时候的view,所以并不会调用这个方法。


7 - (void)viewDidDisappear:(BOOL)animated;

      我们可以重写这个方法,对已经消失,或者被覆盖,或者已经隐藏了的视图做一些其他操作

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值