什么时候才需要使用storyboard,xib,当控制器的view界面是固定死的时候,就考虑用storyboard,xib解决.
目的:让xib描述控制器view
通过xib创建控制器的步骤
1.创建xib文件
2.xib需要有一个view描述控制器的View
目的:让xib描述控制器view
通过xib创建控制器的步骤
1.创建xib文件
2.xib需要有一个view描述控制器的View
3.设置xib用来描述哪个控制器(文件拥有者),就可以连线(告诉控制器是哪个view描述他的view)
1.创建窗口
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
2.设置窗口的根控制器
Name:xib名称
XMGViewController *vc = [[XMGViewController alloc] initWithNibName:@"VC" bundle:nil];
self.window.rootViewController = vc;
3.显示窗口
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
2.设置窗口的根控制器
Name:xib名称
XMGViewController *vc = [[XMGViewController alloc] initWithNibName:@"VC" bundle:nil];
self.window.rootViewController = vc;
3.显示窗口
[self.window makeKeyAndVisible];
xib创建控制器特性
开发中,尽量保证xib的名称跟类名同名
// 创建窗口 self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds]; // 设置窗口根控制器 XMGViewController *vc = [[XMGViewController alloc] init]; // init底层会调用initWithNibName // initWithNibName底层做事情 // 1.判断下有没有指定nibName,如果有,就去加载指定的xib // 2.判断有没有跟控制器类名同名的xib,如果有,就去加载xib // 3.判断有没有跟控制器类名同名但是不带Controller的xib,如果有,就去加载xib // 4.创建空的view self.window.rootViewController = vc; // 显示窗口 [self.window makeKeyAndVisible];
报错:
reason: '-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "THViewController" nib but the view outlet was not set.'
xib的view没有连线