码迷,mamicode.com
首页 > 其他好文 > 详细

UIViewController 视图控制器

时间:2015-08-01 10:03:34      阅读:115      评论:0      收藏:0      [点我收藏+]

标签: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__);
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

UIViewController 视图控制器

标签:uiviewcontroller   视图控制器   

原文地址:http://blog.csdn.net/mltianya/article/details/47183533

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!