您的位置:首页 > 其它

加载storyboard和xib文件

2015-07-07 10:23 344 查看
// 加载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是不会被调用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: