UIViewController的执行顺序(零基础)

UIViewController是我们经常使用的类,在iOS的MVC中它的角色通常扮演的是C的角色,即控制器,负责M(model数据层)与V(view是视图层)之间的交互问题。


首先了解一下视图控制器的执行流程:


其中init方法,loadView,viewDidLoad方法只有在第一次运行的时候走而且只走一遍(当然在以后肯定不能这么理解),但是对于初学者来说这样比较好记。

其中loadView方法主要是用来创建视图控制器中的view视图的,在程序第一次显示界面或者第一次调用self.view这个get方法的时候,系统就会询问view是否被创建好,如果没有创建好,则会立刻调用loadView方法来创建视图,而viewDidLoad方法是在loadView创建完视图后立刻运行,也就是说loadView和viewDidLoad方法一般是成对出现的,这个一定要记清楚,而我们在self.view上面创建视图的时候即可以在loadView里面创建button,label,等视图。也可以在viewDidLoad里面创建,这个没有严格的区分,根据个人喜好。

但是要注意一点,loadView方法需要自己重写,系统在创建viewcontroller的时候不会帮我们填充loadView方法。如下:

-(void)loadView{
    [super loadView];
}

在重写loadView方法的时候必须写[super loadView]方法,这个方法是让父类帮我们创建self.view的视图,当然你也可以自己手动创建,如下:

-(void)loadView{
    self.view = [[[UIView alloc] initWithFrame:[UIScreen mainScreen].bounds] autorelease];
}

以上两种写法都没问题,都是为UIViewController创建一个视图view。

对于另外四个方法:viewWillAppear,viewDidAppear,viewWillDisappear,viewDidDisappear来说,他们的执行次数是不固定的,

在视图将要显示的时候会走viewWillAppear,

在视图已经显示的时候会走viewDidAppear,

在视图将要消失的时候会走viewWillDisappear,

在视图已经消失的时候会走viewDidDisappear。

因此你可以在这里面进行一系列重复性操作,比如登录判断,当登录成功的时候让登录界面消失,并且在详细界面进行判断,如果登录成功则显示详情,登录失败可以弹出警告框,这些都可以在这四个方法里面判断。

记住,系统方法仅仅是告诉你了它什么时候走,而具体走的时候进行什么样的操作是由你自己来进行确定的,也就是说方法里面的代码你业已随意书写,没有任何问题。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值