zoukankan      html  css  js  c++  java
  • loadView 再思考

    如果使用代码创建view,那么就需要重写loadView方法:

    在这个方法中,如果不创建view,就会循环的调用loadView.

    - (void)loadView

    {

        UIView *view = [[UIViewalloc]initWithFrame:[[UIScreenmainScreen]applicationFrame]];

        self.view = view;

        UIButton *button = [UIButtonbuttonWithType:UIButtonTypeRoundedRect];

        button.frame =CGRectMake(100,106,132,132);

        [button addTarget:selfaction:@selector(buttonPressed:)forControlEvents:UIControlEventTouchUpInside];

        //    button.userInteractionEnabled = YES;

        [button setTitle:@"A"forState:UIControlStateNormal];

        [self.viewaddSubview:button];


    在这个方法中必须创建视图控制的view,也就是self.view。

    或者调用[super loadView]方法也是可以的。

    如果是下面这样:

    - (void)loadView

    {

        UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];

        button.frame = CGRectMake(100,106,132,132);

        [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];

        //    button.userInteractionEnabled = YES;

        [button setTitle:@"A" forState:UIControlStateNormal];

        [self.view addSubview:button];

    就会死掉,一直循环的调用loadView,因为视图控制器的view没有创建。

    视图装载的过程

    很清晰的从这张图片看出来,走到is there a view的时候,因为一直没有创建view,那么就会循环的调用loadView。

    视图的卸载过程

  • 相关阅读:
    向内的寻找
    了解潜意识
    NOI2014 Day1
    NOI2011 Day1
    NOI2012 Day2
    NOI2012 Day1
    NOI2013 Day2
    NOI2013 Day1
    拉格朗日乘数法
    NOI2015 Day2
  • 原文地址:https://www.cnblogs.com/Jenaral/p/5134362.html
Copyright © 2011-2022 走看看