控制器的创建

一、第一种创建方式(使用代码直接创建)
  • 1.创建一个空的IOS项目

  • 2.为项目添加一个控制器类 

  • 3.直接在代理方法中创建一个控制器

#import "AppDelegate.h"
#import "HQViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window.backgroundColor = [UIColor whiteColor];

    //创建控制器
    HQViewController *vc = [[HQViewController alloc]init];
    //设置控制器View的背景颜色
    vc.view.backgroundColor = [UIColor redColor];
    //设置该控制器为Window的根控制器
    self.window.rootViewController = vc;
    [self.window makeKeyAndVisible];
    return YES;
}
二、第二种创建方式(通过storyboard创建)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    // 创建窗口
    self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];

    // 创建窗口的跟控制器
    // 加载storyboard
    // storyboard文件名,不需要带后缀
    // nil:  [NSBundle mainBundle]
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];

    // 通过storyboard创建控制器
    // instantiateInitialViewController:加载箭头指向的控制器
    UIViewController *vc = [storyboard instantiateInitialViewController];
    //如果storyboard中有多个控制器,可根据标识来创建控制器(要在storyboard中设置唯一标识)
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"hq"];

    self.window.rootViewController = vc;

    // 显示窗口
    [self.window makeKeyAndVisible];

    return YES;
}
三、第三种创建方式(使用xib创建)
  • 新建一个xib文件,命名为one.xib

  • 创建过程和注意点

    • 创建代码

      - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{
      
        self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
        self.window.backgroundColor = [UIColor whiteColor];
      
        //1.通过xib创建控制器
         HQViewController *vc = [[HQViewController alloc]initWithNibName:@"one" bundle:nil];
        //2.设置这个控制器为Window的根控制器
        self.window.rootViewController = vc;
      
        [self.window makeKeyAndVisible];
      
        return YES;
      }
    • 两个错误注意点

      • 不能加载

        • 在xib文件中没有进行任何操作
        • 解决方法:往xib中拖一个view
      • 加载了xib,但是没有设置输出口

        • 产生原因:没有把xib的view设置为HQviewController的view

        • 解决方法:设置File‘s Owner,可以理解为设置这个文件归谁所有,对File‘s Owner和view进行连线。连线是因为一个xib中可能会有多个view,在storyboard中默认就已经进行了连线。 

 

原文地址:https://www.cnblogs.com/luoze/p/5468205.html