标签:控制器
// UIViewController(基类)
// 1.管理视图
// 2.分担AppDelegate的任务
// 3.实现模块的独立,提高复用性
//4.桥梁
//抽象工厂设计模式:
//提供一个抽象的基类(提供基本的功能),使用时使用具体的子类
//比如UIView,UIViewController都是抽象的基类.
//创建视图控制器对象
RootViewController * rootVC = [[RootViewController alloc]init];
//指定为window的根视图控制器
self.window.rootViewController = rootVC ;
//释放所有权
[rootVC release];
//initWithNibName:bundle: 初始化方法为指定初始化方法(不管调用哪个方法,该方法必定被调用).不管调用该类的哪一个初始化方法,该方法都会被调用.
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization 自定义初始化
}
return self;
}
//当访问控制器的view时,如果view为空,还没有创建,就会调用loadView方法,为视图控制器创建view
//执行完loadView之后,就会立即执行viewDidLoad.
//父类对loadView方法的实现,是创建一个和屏幕大小一样的view
///
- (void)loadView
{
//将LoginView视图对象指定为视图控制器的view 不用指定Frame的大小,系统会自动修改器大小.
LoginView * view = [[LoginView alloc]initWithFrame:CGRectZero];
//给button添加点击时间
[view.button addTarget:self action:@selector(login:) forControlEvents:UIControlEventTouchUpInside];
//设置textfield代理
view.fieldName.delegate = self;
view.backgroundColor = [UIColor redColor];
self.view = view; ///调用setter方法,.
[view release];
// [super loadView]; //父类对loadView方法的实现就是创建了一个UIView类型的对象,并且作为控制器的view
NSLog(@"%s",__FUNCTION__);
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%s",__FUNCTION__);
}
- (void)touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%s",__FUNCTION__);
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%s",__FUNCTION__);
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
NSLog(@"%s",__FUNCTION__);
LoginView * view = (LoginView *)self.view;
[view.fieldName resignFirstResponder];
}
//当视图控制器的view布局自身的子视图时,该方法就会被触发 (视图控制器的view将要显示上面的子视图时触发)
///////iOS 7 新出的方法.
- (void)viewWillLayoutSubviews
{
//当重写父类方法时,如果不知道父类对该方法是如何实现时,先调用父类对给方法的实现.
[super viewWillLayoutSubviews];
// self.view.frame = CGRectMake(0, 200, 320, 400);
NSLog(@"%@",self.view.superview);
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
- (void)login:(UIButton *)btn
{
//NSLog(@"%@",btn.superview);
NSLog(@"点击了");
}
////// 视图控制器分担Appdelegate的任务,管理子视图,所以也需要一个类似于view的视图来管理子视图,所以对于视图控制器自身就自带一个view 大小和屏幕大小相同.通过self.view访问控制器的view
//视图控制器不是视图.在屏幕上是看不到的,只要在屏幕上能看到的东西,都是视图.
//当视图控制器的视图加载完成后触发(只要loadView方法被调用之后,就会立即调用viewDidLoad)
//只是视图view创建完毕,但是此时视图还没有添加到父视图上.
- (void)viewDidLoad
{
NSLog(@"%s",__FUNCTION__);
[super viewDidLoad];
// self.view.backgroundColor = [UIColor grayColor];
// Do any additional setup after loading the view. 做任何额外的设置后加载视图。
}
//当程序收到内存警告(当内存吃紧,内存不足时)时触发.释放一些暂时不使用的系统资源.供当前程序运行.
- (void)didReceiveMemoryWarning
{ NSLog(@"%s",__FUNCTION__);
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated. 处理任何资源都可以被重新创建。
}
标签:控制器
原文地址:http://qccccc.blog.51cto.com/6004423/1548917