iOS - viewController生命周期

相关方法

这些方法都是UIViewController类的方法:
1. -(void)viewDidLoad;

  • 一个APP在载入时会先通过调用loadView方法,将视图载入到内存中。然后会调用viewDidLoad方法来进行进一步的设置。通常,我们对于各种初始数据的载入,初始设定等很多内容,都会在这个方法中实现。但是要注意,这个方法只会在APP刚开始加载的时候调用一次,以后都不会再调用它了,所以只能用来做初始设置

2. -(void)loadView;

  • 每次访问controller的view(比如controller.view、self.view)且view为nil,loadView方法就会被调用。用于创建Controller的View。

3. -(void)viewWillAppear:(BOOL)animated;

  • 系统在载入所有数据后,将会在屏幕上显示视图,这时会先调用这个方法。通常我们会利用这个方法,对即将显示的视图做进一步的设置
  • 当APP有多个视图时,在视图间切换时,并不会再次载入viewDidLoad方法,所以如果在调入视图时,需要对数据做更新,就只能在这个方法内实现了。

4. -(void)viewDidAppear:(BOOL)animated;

  • 有时候,由于一些特殊的原因,我们不能在viewWillApper方法里,对视图进行更新。那么可以重写这个方法,在这里对正在显示的视图进行进一步的设置。

5. -(void)viewWillDisappear:(BOOL)animated;

  • 在视图变换时,当前视图在即将被移除、或者被覆盖时,会调用这个方法进行一些善后的处理和设置。由于在IOS4之后,系统允许将APP在后台挂起,所以在按了Home键之后,系统并不会调用这个方法,因为就这个APP本身而言,APP显示的view,仍是挂起时候的view,所以并不会调用这个方法。

6. -(void)viewDidDisappear:(BOOL)animated;

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

7. -(void) viewWillLayoutSubviews;

  • 控制器的view将要布局子控件(在这个方法里,部署需要改变重新刷新view的代码,功能类似view的layoutSubViews()这个方法,需要注意的是,这个方法里一般都需要重置的view的frame,宽度和高度的获取,因此view的frame一般都写在这个方法里)

8. - (void) viewDidLayoutSubviews ;

  • 控制器的view布局子控件完成

代码执行顺序

当一个视图控制器被创建,并在屏幕上显示的时候。代码的执行顺序:

  • alloc 创建对象,分配空间
  • init (initWithNibName) 初始化对象,初始化数据
  • loadView从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图
  • viewDidLoad 载入完成,可以进行自定义数据以及动态创建其他控件
  • viewWillAppear 视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
  • viewDidAppear 视图已在屏幕上渲染完成
  • viewWillDisappear: 视图将要消失,在视图消失之前执行
  • viewDidDisappear: 视图已经被从屏幕上移除,用户看不到这个视图了在这里插入图片描述

具体代码

  • ViewController.m中
#import "ViewController.h"
#import "TwoViewController.h"

@interface ViewController ()

@end

@implementation ViewController

- (void) viewDidLoad {
   
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor = [UIColor whiteColor];
    NSLog(@"viewDidLoad");
    _pressBtn = [UIButton buttonWithType: UIButtonTypeSystem];
  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值