UIViewController 视图控制器

作用:

•创建和管理视图。
•管理视图上显示的数据。
•设备方向变化,调整视图大小以适应屏幕。
•负责视图和模型之间的数据及请示的传递。

当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序:
1、 alloc                 创建对象,分配空间
2、init (initWithNibName) 初始化对象,初始化数据
3、loadView               从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图
4、viewDidLoad            载入完成,可以进行自定义数据以及动态创建其他控件
5、viewWillAppear         视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了
6、viewDidAppear          视图已在屏幕上渲染完成

当一个视图被移除屏幕并且销毁的时候的执行顺序,这个顺序差不多和上面的相反
1、viewWillDisappear   视图将被从屏幕上移除之前执行
2、viewDidDisappea 视图已经被从屏幕上移除,用户看不到这个视图了
3、dealloc       视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放
1.创建一个根视图
原代码:
 创建一个属性:@property(nonatomic ,retain)RootViewController *rootVC;
 1.创建一个rootViewController对象
    _rootVC =[[RootViewController alloc] init];
 2.给indow设置根视图控制器
    _window.rootViewController = _rootVC;
    [_rootVC release];
2.创建一个RootViewController的类,引入头文件
3.ViewController的初始化

vc的初始化方法,这个方法一般自己就会调用了,不需要我们再额外的去调用,会初始化一些容器,比如数组,字典

原代码:
-(instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
    self =[super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        self.arr = [NSMutableArray array];
    }
    //打印方法名
    NSLog(@"%s", __FUNCTION__); 
    return self;
}
4. 第一次使用view属性时候使用 ,创建view
原代码:
-(void)loadView{
    // super调用父类
    [super loadView];
    NSLog(@"%s", __FUNCTION__);
    // self.view 的加载
}

如果想重写父类的方法,首先要先用super去调用父类的方法,这样可以保证原功能不变,然后在方法里再写新的功能

5.视图的创建和辅设都在viewdidload方法里进行
原代码:
- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view.
    self.view.backgroundColor =[UIColor yellowColor];
    NSLog(@"%s", __FUNCTION__);
    for (int i =1; i<4; i++) {
        UITextField *textFieldi =[[UITextField alloc] initWithFrame:CGRectMake(100, 100+100*i, 150, 40)];
        textFieldi.delegate =self;
        textFieldi.layer.borderWidth =2;
        textFieldi.layer.cornerRadius =10;
        [self.view addSubview:textFieldi];
        [textFieldi release];
    }
      // 辅一个button
    UIButton *button =[UIButton buttonWithType:UIButtonTypeSystem];
    button.frame =CGRectMake(100, 500, 150, 40);
    [button setTitle:@"下一页" forState:UIControlStateNormal];
    [button setTintColor:[UIColor blackColor]];
    [self.view addSubview:button];
    [button addTarget:self action:@selector(click:) forControlEvents:UIControlEventTouchUpInside];
    button.layer.borderWidth =2;
    button.layer.cornerRadius =10;   
}
6. 视图将要出现

原代码:

-(void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    NSLog(@"%s", __FUNCTION__);
}
7.试图将要消失

原代码:

-(void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    NSLog(@"%s", __FUNCTION__);
}
8.视图已经消失

原代码:

-(void)viewDidDisappear:(BOOL)animated{
    [super viewDidDisappear:animated];
    NSLog(@"%s", __FUNCTION__);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值