UI 视图控制器UIViewController

UIViewController:视图控制器。 

  控制视图显⽰,响应事件。 

  分担AppDelegate的⼯作。 

  实现模块独⽴,提⾼复⽤性。

视图控制器的功能:

  控制视图⼤小变换、布局视图、响应事件。

  检测以及处理内存警告。

  检测以及处理屏幕旋转。

  检测视图的切换。

MVC概述:

  UIViewControllerMVC设计模式的核⼼。 

  MVC是⼀个框架级的设计模式。 

  MModel,主要⽤用于建⽴数据模型(即数据的结构

  VView,我们能看到的所有控件都是view,view主要的功能是展示数据。 

  C是控制器,主要是控制MV的通信。

使用视图控制器:

    定义UIViewController的⼦类创建视图控制器对象,作为window的根视图控制器viewDidLoad中使⽤默认创建好的视图对象view

视图控制器指定自定义view

   UIViewController⾃带⼀个空的view,与需求不符合。视图控制器只负责控制视图显示,响应事件。

如何设置:

//⾃定义视图类继承UIView。在初始化⽅法中添加子视图控件。

//重写controllerloadView⽅方法。创建⾃定义视图对象,并指定为controllerview

//将⼦视图控件对象设置为自定义视图类的属性,viewDidLoad⽅法中进行设置:添加action、设置delegate等等。

//controller中添加按钮点击事件实现和代理方法的实现。

检测屏幕旋转:

  视图控制器本⾝能检测到屏幕的旋转,如果要处理屏幕旋转,需要重写⼏个⽅法:

 supportedInterfaceOrientations(设置设备⽀持旋转的⽅向)

视图处理:

  注意视图控制器会⾃动调整view的⼤小以适应屏幕旋转,bounds被修改,触发viewlayoutSubviews⽅法。

 view重写layoutSubviews方法,根据设备⽅向,重新布局。

 [UIApplication shareApplication].statusBarOrientation提供设备当前⽅向。

处理内存警告:

   控制器能监测内存警告,以便我们避免内存不够引起的crash在定义的controller⼦类中重写didReceiveMemoryWarning⽅法。释放暂时不使⽤的资源。(数据对象、图像)


RootViewController.m文件的内容

//加载视图
- (void)loadView
{
LoginView *login=[[LoginView alloc]initWithFrame:CGRectMake(0, 0, 320, 480)];
//必须告诉self.view管理哪个视图
self.view=login;
[login release];
}


- (void)viewDidLoad
{
[super viewDidLoad];

self.view.backgroundColor=[UIColor greenColor];

ThirdViewController *thirdVC=[[ThirdViewController alloc]init];
[self.view addSubview:thirdVC.view];
[self addChildViewController:thirdVC];
[thirdVC release];
}

//设置模拟器支持的方向,可以使用按位或|来返回支持多个方向。
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeLeft|UIInterfaceOrientationMaskPortrait;
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
NSLog(@"内存警告");
//当视图已经加载到内存,并没有显示在window上时,将视图置空
if ([self isViewLoaded]&&self.view.window==nil) {
self.view=nil;
}
// Dispose of any resources that can be recreated.
}


AppDelegate.m文件

指定根视图

RootViewController *rootVC=[[RootViewController alloc]init];
self.window.rootViewController=rootVC;
[rootVC release];



  

    /*

    UIViewController的生命周期

     1.init

     2.loadView

     3.viewDidLoad

     4.viewWillAppear

     5.viewDidAppear

     6.viewWillDisappear

     7.viewDiaDisappear

     8.dealloc

    */


AppDelegate



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值