好贷网好贷款

UIViewController加载过程

发布时间:2016-12-3 12:47:26 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"UIViewController加载过程",主要涉及到UIViewController加载过程方面的内容,对于UIViewController加载过程感兴趣的同学可以参考一下。

UIViewController是视图和数据的桥梁,UIViewController是所有controller的基类,ios内置了很多试图控制器,如导航控制器,tableViewController等。 视图控制本身包含一个视图,是view。UIScreen是连接物理屏幕的标示,UIWindow是为UIScreen提供了一个画布。 加载过程分为以下几步: 第一、从xib文件中创建:- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil sample: self.viewController = [[[AndyViewControlleralloc]initWithNibName:@"AndyViewController"bundle:nil]autorelease]; 说明: 如果对象是UIViewController的子类,那么必定会调用该函数,init函数在初始化过程中也会调用此函数,如果文件中没有xib,那么初始化调用完此函数后,view仍然回空,这个时候调用view的set方法发现,view为空,就会自动调用loadView方法初始化一个emptyView,如果子类重写了该方法,那么就会调用子类的该方法,但是子类重写时必须self.view 复制,否则view将为空,接下来调用viewDidLoad方法。 第二、loadView方法 当view需要被展示而它却是nil时,viewController会调用该方法。不要直接调用该方法。 如果手工维护views,必须重载重写该方法 如果使用IB维护views,必须不能重载重写该方法 loadView和IB构建view 作用:在需要用程序自定义view时重新,其他情况可以不用考虑 第三、(void)viewDidLoad 在调用完loadView方法后,调用此方法,重写该方法可以进一步定制view, 一般情况下,数据对象是通过配置view controller的属性来提供的,view controller需要的一些额外的数据应该通过重写viewDidLoad函数来提供。 但是如果此时view没有创建好,使用self.view时会重新调用loadView方法,这样导致死循环。 实例代码如下: -(void)loadView { NSLog(@"loadView"); // UIView *view=[[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; // view.backgroundColor=[UIColor greenColor]; // self.view=view; // [view release]; //添加子视图 } - (void)viewDidLoad { [super viewDidLoad]; UIView *view=[[UIView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; view.backgroundColor=[UIColor greenColor]; [self.view addSubview:view]; [view release]; NSLog(@"view Did Load"); //注意上面的操作会判断view是否为空,如果view为空,就会调用loadview方法 // Do any additional setup after loading the view. } 第四、- (void)viewWillAppear:(BOOL)animated;    // Called when the view is about to made visible. Default does nothing 第五、- (void)viewDidAppear:(BOOL)animated;     // Called when the view has been fully transitioned onto the screen. Default does nothing

上一篇:android progressDialog的使用
下一篇:你为什么发不了好文章——写给苦恼博士的一封信

相关文章

相关评论