IOS UIViewController API,生命週期詳解

在UIKit框架中只有一個根製圖控制器。視圖控制器用來管理界面和處理界面的類對象,程序啓動前必須建立根視圖控制器。全部視圖控制器都須要自定義完成,必須繼承於UIViewController 實現。xcode新建立的項目默認是經過info.plist 文件配置 main.storyboard 文件自動建立根視圖ViewController。繼承於UIView
建立根視圖控制器
#import "AppDeletegate.h"
...code
- (void) didFinishLuanchingWithOptions:(NSDictionary *)luanchOptions {
    // 設置屏幕寬高
    self.window = [[UIWindow alloc] initWithFrame: [UIScreen mainScreen]];
    
    // 設置視圖控制器爲window根節點
    self.window.rootViewController = [[UIViewController alloc] init];
}
...code
自定義ViewController
#import "ViewController.h"
@implementation ViewController
// 當視圖控制器第一次被加載顯示視圖
- (void) viewDidLoad{
    [super viewDidLoad];
    
    //建立子視圖
    UIView *view = [[UIView alloc] init];
    view.frame = CGReactMake(0, 0, 300, 45);
    view.backgroundColor = [UIColor greenColor];
    
    // 加入視圖
    [self.view addSubView:view];
}
@end
添加子視圖控制器
#import "ViewController.h"
@implementation ViewController
// 當視圖控制器第一次被加載顯示視圖
- (void) viewDidLoad{
    [super viewDidLoad];
    self.view.backgroundColor = [UIColor blueColor];
}
// 當屏幕被點擊時候觸發
-(void)touchesBegan:(NNSet<UITouch *> *)touches  withEvent:(UIEvent *)event{
    UIViewController *sonViewController = [[UIViewController alloc] init];
    
    [self presentViewController: sonViewController animate:YES complation:nil];
}
@end
API
  • (void)touchesBegan:(NNSet<UITouch *> *)touches withEvent:(UIEvent *)event 當屏幕被點擊時候觸發。
  • (void)presentViewController:(UIViewController *) animate:(BOOL) completion:(callbacl) 顯示一個視圖控制器到屏幕上,參數1:UIViewController 新的視圖控制器對象,參數2:animate 是否開啓動畫效果,參數3:completion: 執行完成後的回調函數,不須要傳nil便可。
  • (void)dismissViewControllerAniamted:(BOOL) completion:(callback) 使當前視圖控制器在屏幕消失,參數1:animte 是否開啓動畫效果,參數2:completion 執行完成後的回調函數,不須要傳nil便可。
  • (void)removeFromSuperView 將當前視圖實例從父級刪除
  • (void)bringSubViewToFront: UIView* 將一個子視圖調整到最頂級繪製
  • (void)sendSubViewToBack: UIView* 將一個子視圖調整到最低層繪製

#### 生命鉤子xcode

    • (void)viewDidLoad 加載內存時候觸發, 一般用於初始化子節點佈局和資源使用
    • (void)viewWillAppear:(BOOL)animated 即將顯示時候觸發
    • (void)viewDIdLayoutSubviews 佈局子組件完成時候觸發
    • (void)viewWillLayoutSubviews 當渲染時候佈局子組件觸發app

      • (void)viewDidAppear:(BOOL)animated 已經顯示時觸發框架

        • (void)viewWillDisappear:(BOOL)animated 即將消失時候觸發
    • (void)viewDidDisappear:(BOOL)animated 消失時候觸發
    • (viod) didReceiveMemoryWarning 當內存不足時候觸發
    相關文章
    相關標籤/搜索