controller

创建控制器

  • 直接创建
    MJViewController *mj = [[MJViewController alloc] init];
    
  • 指定xib文件来创建
    MJViewController *mj = [[MJViewController alloc] initWithNibName:@"MJViewController" bundle:nil];
    
  • 通过storyboard
    • 先加载storyboard文件(Test是storyboard的文件名)
      UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Test" bundle:nil];
      
    • 接着初始化storyboard中的控制器 初始化“初始控制器”(箭头所指的控制器)
      MJViewController *mj = [storyboard instantiateInitialViewController];
      
    • 通过一个标识初始化对应的控制器
      MJViewController *mj = [storyboard instantiateViewControllerWithIdentifier:@”mj"];
      

view的创建

    // 如果描述控制器View的xib跟控制器的类名相同,就会去加载
    // 只有控制器的init方法底层会调用initWithNibName:bundle:
    // 只要通过initWithNibName:bundle:初始化控制器,并且nibName为nil,就会执行以下几步。
    // XMGViewController类型
    // 1.寻找有没有跟控制器类名同名但是不带Controller的xib,如果有就会去加载(XMGView.xib)
    // 2.寻找有没有跟控制器类名同名的xib,如果有就会去加载(XMGViewController.xib)
    // 3.如果都没有找到,创建空的view,