iOS 中控制器的创建方法

来源:互联网 发布:三国志13mac中文版 编辑:程序博客网 时间:2024/04/29 21:06
  1. 创建控制器 方法 1

  2. #pragma mark - 方法 1 :使用class创建控制器

  3.    //1.实例化一个window
  4.    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
  5.    
  6.    self.window.backgroundColor = [UIColor redColor];
  7.    
  8.    //2.实例化控制器
  9.    ViewController *controller = [[ViewController alloc]init];
  10.    
  11.    //3.设置controller为window的根控制器
  12.    self.window.rootViewController = controller;
  13.    
  14.    //4.让window成为主窗口并可见
  15.    [self.window makeKeyAndVisible];
  16.    
  17.    //添加一个view
  18.    UIView *tempView = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 50, 50)];
  19.    //设置颜色
  20.    tempView.backgroundColor = [UIColor blueColor];
  21.    //添加到controller
  22.    [self.window addSubview:tempView];

  1. 创建控制器 方法 2

  2. #pragma mark - 方法 2 :加载storyboard创建控制器  (storyboard中只有一个控制器)

  3.    //1.实例化一个window
  4.    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
  5.    
  6.    //3.实例化一个storyboard
  7.    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
  8.    
  9.    //4.取出storyboard 中的控制器
  10.    UIViewController *controller = [storyboard instantiateInitialViewController];
  11.    
  12.    //5.设置controller成为window的根控制器
  13.    self.window.rootViewController = controller;
  14.    
  15.    //6.让window成为主窗口并可见
  16.    [self.window makeKeyAndVisible];

  1. 创建控制器 方法 3

  2. #pragma mark - 方法 3 :使用storyboard ID 创建控制器 (在storyboard中有多个控制器,根据各自的ID来调用)

  3.    //1.实例化一个window
  4.    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
  5.    
  6.    //2.实例化storyboard对象
  7.    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
  8.    
  9.    //3.根据storyboard ID 选择控制器
  10.    UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"ViewController"];
  11.    
  12.    //4.设置controller成为window的根控制器
  13.    self.window.rootViewController = controller;
  14.    
  15.    //5.让window成为主窗口并可见
  16.    [self.window makeKeyAndVisible];
 方法 3中storyboard ID
  1. 创建控制器 方法 4

  2. #pragma mark - 方法 4 :加载xib 创建控制器 (创建了LoadXib文件,不需要进行关联或者连线)

  3.    //实例化一个window
  4.    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
  5.    
  6.    //加载xib成为控制器
  7.    UIViewController *controller = [[NSBundle mainBundle] loadNibNamed:@"LoadXib" owner:nil options:nil].lastObject;
  8.    
  9.    //设置controller成为window的根控制器
  10.    self.window.rootViewController = controller;
  11.    
  12.    //让window成为主窗口并可见
  13.    [self.window makeKeyAndVisible];

  1. 创建控制器 方法 5

  2. #pragma mark - 方法 5 :用xib文件 来初始化控制器 (需要创建一个xib文件 并在xib文件中和控件进行连线并和类进行关联)

  3.    /*
  4.     xib中没有view存在
  5.    reason: '-[UIViewController _loadViewFromNibNamed:bundle:] was unable to load a nib named "InitalTest"'
  6.    */
  7.    /*
  8.     view没有关联
  9.     reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "InitalTest" nib but the view outlet was not set.'
  10.     */
  11.    //实例化一个window
  12.    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
  13.    
  14.    //根据xib文件实例化一个控制器
  15.    UIViewController *controller = [[UIViewController alloc]initWithNibName:@"InitalTest" bundle:nil];
  16.    //设置controller成为window的根控制器
  17.    self.window.rootViewController = controller;
  18.    
  19.    //让window成为主窗口并可见
  20.    [self.window makeKeyAndVisible];
方法5中xib需要和拖拽的控件进行连线
方法5中xib和类进行关联
  1. 创建控制器 方法 6

  2. #pragma mark - 方法 6 :和类同名xib 创建控制器 (如果存在和类同名的xib,通过alloc init 内部会优先查找加载xib,创建的时候 xib内部已经和控件连线并和类进行关联)

  3.    //实例化一个window
  4.    self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
  5.    
  6.    //实例化控制器
  7.    TestViewController *controller = [[TestViewController alloc]init];
  8.    
  9.    //设置controller成为window的根控制器
  10.    self.window.rootViewController = controller;
  11.    
  12.    //让window成为主窗口并可见
  13.    [self.window makeKeyAndVisible];

0 0
原创粉丝点击