initWithNibName:bundle:
初始化UIViewController.也可以自定义init方法。但是在写自定义init方法。先要调用[super initWithNibName:nil bundle:nil]。
loadView 访问viewcontroller的view时,如果view为nil会自动调用该方法。
viewDidLoad 当该控制器管理的视图被装载完成后,系统自动调用该方法。重写该方法时要先调用[super viewDidLoad]。
viewWillAppear 当该控制器管理的视图将要显示出来时,系统自动调用该方法。
viewDidAppear 当该控制器视图的视图显示出来后,系统自动调用该方法。
viewWillLayoutSubviews 当该控制器管理的视图将要排列它包含的所有子视图时,系统自动调用该方法。
viewDidLayoutSubviews 当该控制器管理的视图把它包含的所有子视图排列完成后,系统自动调用该方法。
ViewWillDisappear 当该控制器管理的视图将要被隐藏或者将要被移出窗口时,系统自动调用该方法。
还有就是viewDidDisappear.
那么使用storyboard布局界面时,在viewDidLoad访问空间为nil的问题已经很明显了。因为在storyboard中使用约束来布局。在viewDidLoad函数中,各空间的排列还没完成,自然是访问不到了。
网友评论