@UIViewController 视图控制器
UIViewController 视图控制器
每个视图控制器上都带有一个自身控制的根视图(不重写时,只要创建了一个视图控制器类就会自动创建好一个自身控制的视图对象)
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__);
}
运行时的监测截图:
//监测屏幕旋转
-(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];
}
*******/
}