#import
“AppDelegate.h”
如果 NibName=nil ,默认加载与控制器类名相同的 xib(rootViewController.h)
rootViewController *vc=[[rootViewController alloc] init]
init 方法底层调用的就是 initWithNibName 方法
//xib描述的控制器
#import "rootViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- ( BOOL )application:( UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions {
/*
使用xib创建窗口控制器的常见错误 :
1.
错误原因 : 当创建的 xib 里面是空的,没有任何描述控制器的 View 的时候就作为窗口控制器会报错
错误信息 :was unable to load a nib named "rootViewController"
解决 : 在 xib 中添加一个 View
2.
错误原因 : 没给 xib 中绑定 Flie 'owner
错误信息 :loaded the "rootViewController" nib but the view outlet was not set.'
解决 : 给 xib 中绑定 Flie 'owner, 告诉 xib 是描述哪一个控制器
3.
错误原因 : 没有连线
错误信息 : nib but the view outlet was not set.
解决 : 给 xib 中 Flie 'owner 的 View 和当前 xib 连线
*/
/*
通过xib创建的控制器步骤
1. 让 xib 有一个 View 描述控制器的 View ,设置 Flie 'owner 的 class
2. 把 xib 中的 View 跟控制器绑定 ( 连线 )
#import "rootViewController.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- ( BOOL )application:( UIApplication *)application didFinishLaunchingWithOptions:( NSDictionary *)launchOptions {
/*
使用xib创建窗口控制器的常见错误 :
1.
错误原因 : 当创建的 xib 里面是空的,没有任何描述控制器的 View 的时候就作为窗口控制器会报错
错误信息 :was unable to load a nib named "rootViewController"
解决 : 在 xib 中添加一个 View
2.
错误原因 : 没给 xib 中绑定 Flie 'owner
错误信息 :loaded the "rootViewController" nib but the view outlet was not set.'
解决 : 给 xib 中绑定 Flie 'owner, 告诉 xib 是描述哪一个控制器
3.
错误原因 : 没有连线
错误信息 : nib but the view outlet was not set.
解决 : 给 xib 中 Flie 'owner 的 View 和当前 xib 连线
*/
/*
通过xib创建的控制器步骤
1. 让 xib 有一个 View 描述控制器的 View ,设置 Flie 'owner 的 class
2. 把 xib 中的 View 跟控制器绑定 ( 连线 )
*/
//
创建窗口控制器 xib
//xib=Nib
rootViewController *rootVc=[[ rootViewController alloc ] initWithNibName : @"rootViewController" bundle : nil ];
self . window . rootViewController =rootVc;
[ self . window makeKeyAndVisible ];
return YES ;
//xib=Nib
rootViewController *rootVc=[[ rootViewController alloc ] initWithNibName : @"rootViewController" bundle : nil ];
self . window . rootViewController =rootVc;
[ self . window makeKeyAndVisible ];
return YES ;
/*
通过xib创建的控制器
通过xib创建的控制器
如果 NibName=nil ,默认加载与控制器类名相同的 xib(rootViewController.h)
rootViewController *vc=[[rootViewController alloc] init]
init 方法底层调用的就是 initWithNibName 方法
initWithNibName方法底层
-( instancetype )initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
-( instancetype )initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
//1
.
首先判断下当前控制器是否重写了
loadView
方法
//2
.
如果没有重写
,
进行下面判断
//3. 判断 nibName 否为空 , 如果为空,默认去寻找跟类名相同但是不带 Controller 的 View.xib
//4. 接着去寻找和类名完全相同的 xib,ViewController.xib
//5. 如果都没有找到,就自动创建一个颜色几乎透明的 View
return [ super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
}
*/
//3. 判断 nibName 否为空 , 如果为空,默认去寻找跟类名相同但是不带 Controller 的 View.xib
//4. 接着去寻找和类名完全相同的 xib,ViewController.xib
//5. 如果都没有找到,就自动创建一个颜色几乎透明的 View
return [ super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
}
*/
}