UIViewControl? 視圖控制器
UIViewControl:每一個視圖控制器都自帶一個UIView,
UIViewControl 是所有視圖控制器的父類
*? 模擬系統中window的rootVC的屬性的setter方法:
- (void)setWithrootVC: (UIViewController *)otherRootVC {
if (_rootVC!= otherRootVC){
[_rootVC? release];
_RootVC = [otherRootVC retain];
[ self? addsubView: otherRootVC.view];為什么在試圖控制中會自帶一個View,它其中的原理是這樣的,在系統實現set方法中,對自身進行了一次添加View的操作
}
}
模態跳轉:這個方法都需要在按鈕點擊關聯方法中實現的
//界面跳轉的模態方法
[self? presentViewController:regVC animated:NO completion:nil];
// 界面跳轉之后返回的模態方法
- (void)haha{
[self? dismissViewControllerAnimated:NO completion:^{
}];
視圖控制器的生命周期執行順序:
//1、視圖加載完畢
- (void)viewDidLoad{
[super viewDidLoad];
NSLog(@"視圖加載完畢%s",__FUNCTION__);
}
//2、視圖即將出現
- (void)viewWillAppear:(BOOL)animated{
[super viewWillAppear:animated];
NSLog(@"視圖即將出現%s",__FUNCTION__);
}
//3、視圖已經出現
- (void)viewDidAppear:(BOOL)animated{
[super viewDidAppear:animated];
NSLog(@"視圖已經出現%s",__FUNCTION__);
}
//4、視圖將會消失
- (void)viewWillDisappear:(BOOL)animated{
[super viewWillDisappear:animated];
NSLog(@"視圖即將消失%s",__FUNCTION__);
}
//5、視圖已經消失
- (void)viewDidDisappear:(BOOL)animated{
[super viewDidDisappear:animated];
NSLog(@"視圖已經消失%s",__FUNCTION__);
}
//6、當前視圖控制器被釋放的時候,所執行的方法
- (void)dealloc{
//? ? ARC下不需要寫[super dealloc];
//? ? MRC下需要寫[super dealloc];
}