// 加载storyboard UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Two" bundle:nil]; // 创建storyboard里面灰色的控制器
//找到shtoryboard里面设置的初始控制器 // UIViewController *vc = [storyboard instantiateInitialViewController];
// 从storyboard里面找出绑定标识的控制器 MJTwoViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"pink"]; self.window.rootViewController = vc;
2.通过xib加载
//nib文件初始化
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { // Custom initialization } return self; }
//加载所有xib文件
NSArray* objects = [[NSBundle mainBundle] loadNibNamed:nibName owner:self options:nil]
//加载指定xib文件
ContactsTableViewCell *cell = [[[NSBundle mainBundle]loadNibNamed:@"ContactsTableViewCell" owner:nil options:nil] objectAtIndex:0]
3.xib布局文件初始化的两种方法
-(instancetype)initWithFrame:(CGRect)frame { self=[super initWithFrame:frame]; if (self) {
//NIb加载会把xib文件加载到内存中,读取快,经常使用的xib文件可以使用nib加载,
//Bundle加载,每次会从磁盘上加载,效率会慢一点 // self=[[[UINib nibWithNibName:@"MPListView" bundle:nil] instantiateWithOwner:self options:nil] lastObject]; self=[[[NSBundle mainBundle] loadNibNamed:@"MPListView" owner:self options:nil] objectAtIndex:0]; } return self; }
但是如果你使用initWithNibName调入Nib时,awakeFromNib是不会被调用的。