UIViewController 视图控制器

@UIViewController 视图控制器

UIViewController  视图控制器

1.控制视图显示
2.处理事件

每个视图控制器上都带有一个自身控制的根视图(不重写时,只要创建了一个视图控制器类就会自动创建好一个自身控制的视图对象)

eg:创建一个视图控制器类:ListViewController

如果要创建背景颜色:self.view.backgroundColor = [UIColor redColor];(self为视图控制器本身,view为其自身所控制的视图对象)

重写时,也可以自己创建一个UIView视图类来作为视图控制器的根视图:eg:创建一个视图类ListView,创建视图类的实例变量ListView * _listView;在视图控制器中调用头文件,然后设置视图类对象作为视图控制器的根视图:

self.view = _listView;


@工程举例

视图控制器作为根视图的控制器:

 FirstViewController * firstViewController = [[FirstViewController alloc]init];

    self.window.rootViewController = firstViewController;

    [firstViewController release];


//在进行视图构造的时候,对其进行监测构造过程

-(void)viewWillAppear:(BOOL)animated

{

    [super viewWillAppear:animated];

    NSLog(@"%s,%d",__FUNCTION__,__LINE__);

}

-(void)viewDidAppear:(BOOL)animated

{

    [super viewWillAppear:animated];

    NSLog(@"%s,%d",__FUNCTION__,__LINE__);


}

-(void)viewWillDisappear:(BOOL)animated

{

    [super viewWillAppear:animated];

    NSLog(@"%s,%d",__FUNCTION__,__LINE__);


    

}

-(void)viewDidDisappear:(BOOL)animated

{

    [super viewWillAppear:animated];

    NSLog(@"%s,%d",__FUNCTION__,__LINE__);

   

}


运行时的监测截图:



举例使用视图控制器:
/*****
视图控制器
1.新建工程
2.创建LoginViewController类
3.在AppDelegate类中,创建LoginViewController对象,指定给window作为根视图控制器(rootViewController)
4.为了给Controller设置根视图View,创建LoginView类
5.实现LoginView的初始化方法,创建并添加这个视图上的所有需要展示的子视图对象
6.注:子视图设置为属性
7.重写controller的loadView方法创建LoginView对象,设置给controller作为控制根视图的view
8.注:loginView在延展中需要声明实例变量
9.当根视图view加载完成时,会执行viewDidLoad.在这里,你可以任意操作LoginView
10.设置loginView的label显示”用户名"
*****/

@拓展延伸

//监测屏幕旋转

-(void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration

{

    NSLog(@"%ld",toInterfaceOrientation);

}

//内存警告

- (void)didReceiveMemoryWarning//处理内存警告

{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

    //判断条件:[self isViewLoaded]根视图view对象是否已经存在

    //self.view.window == nil 判断根视图view是否正在显示在window(即窗口为空,即没显示)

    if ([self isViewLoaded] && self.view.window == nil) {

    self.view = nil;

    }

    /*******

     内部实现

     if(_view != view){

     [_view release];

     _view = [view retain];

     }

     

     *******/

}

@MVC模式
MVC
1.Model:模型类,提供数据  eg:Student,Teacher,Book,AddressContact
2.View: 视图类,展示界面,展示Model提供的数据  UILabel,LoginView
3.Controller 控制器类,控制视图显示和处理事件



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值