控制器的创建方式

控制器的创建方式

1)直接利用代码alloc init创建

2)使用主动的方式加载storyboard

3)指定xib文件来创建

注:如果项目中设置了主窗口,则不用代码也可以加载storyboard(系统自动生成的),使用纯项目则需要手动添加代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds] ];
    self.window.backgroundColor = [UIColor whiteColor];
    
    // 第一种创建控制器的方法,直接创建但是加载UI控件很困难
    MJOneViewController *one = [[MJOneViewController alloc] init];
    one.view.backgroundColor = [UIColor blueColor];
    self.window.rootViewController = one;
    
    // 第二种创建控制器的方法,加载storyboard
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Two" bundle:nil];
    // 1. 创建storyboard里箭头所指的控制器(灰色)
    UIViewController *vc1 = [storyboard instantiateInitialViewController];
    self.window.rootViewController = vc1;
    
    // 2. 创建storyboard里第二个控制器(无箭头所指的)
    MJTwoViewController *vc2 = [storyboard instantiateViewControllerWithIdentifier:@"pink"];
    self.window.rootViewController = vc2;
    
    // 第三种创建控制器的方法,加载xib文件(很久之前的方法了)
    MJThreeViewController *vc3 = [[MJThreeViewController alloc] initWithNibName:@"MJThree2356" bundle:nil];
    self.window.rootViewController = vc3;
    
    [self.window makeKeyAndVisible];
    
    return YES;
}

指定xib文件创建控制器部分的知识点:

1)UIViewController控制器的 initWithNibName: bundle: 方法用来加载对应的xib控制器文件;

2)首先需要在xib文件中拖一个UIView,如果没有则报错,如下错误:

   was unable to load a nib named "MJThree2356"

3)然后将“File's Owner”的class属性设置为对应的控制器类,再右键“File's Owner”选择view为对应的UIView连线,

  (未连线的UIView相当于无用的),如下图所示:




注:如果不与view连线,则提示如下错误:

loaded the "MJThree2356" nib but the view outlet was not set




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值