xib
1.单独创建xib
1,右击–New File–iOS–User Interface–View,取名xxxViewControler
2, 点击”File‘s Owner”,设置Class为xxxViewControler
3, 右键”Files‘s Owner”, 里面有个默认的IBOutlet变量view, 看一下后面有没有做关联,如果没有就拉到下面的View和视图做个关联
2.加载xib:
1).ViewControler的xib:
方法1:
ViewControler.m文件
@property (strong, nonatomic) RemoteH5ViewController *remoteH5ViewCtrl;
---
_remoteH5ViewCtrl = [[RemoteH5ViewController alloc]initWithNibName:@"RemoteH5ViewController" bundle:nil];
_remoteH5ViewCtrl.view.frame = CGRectMake(0, 0, _NetworkView.frame.size.width, _NetworkView.frame.size.height);
2).View的xib:
方法1:
ViewControler.m文件
//方法1
NSArray *array = [[NSBundle mainBundle]loadNibNamed:NSStringFromClass([LocalSDKView class]) owner:nil options:nil];
_localSDKView = array.firstObject;
_localSDKView.frame = CGRectMake(0, 0, _NetworkView.frame.size.width, _NetworkView.frame.size.height);
[_NetworkView addSubview:_localSDKView];
方法2:
ViewControler.m文件
//方法2,需要在LocalSDKView.h/m内写明加载xib视图的方法
_localSDKView = [LocalSDKView viewFromNIB];
_localSDKView.frame = CGRectMake(0, 0, _NetworkView.frame.size.width, _NetworkView.frame.size.height);
[_NetworkView addSubview:_localSDKView];
LocalSDKView.h/m文件
//LocalSDKView.h文件
+ (instancetype)viewFromNIB;
-----
//LocalSDKView.m文件
+ (instancetype)viewFromNIB{
NSArray *views = [[NSBundle mainBundle]loadNibNamed:NSStringFromClass([self class]) owner:nil options:nil];
return views[0];
}
- (void)awakeFromNib {
// 视图内容布局
}
storyboard
1)根据文件名加载storyboard
//跳转到SecondStoryboard.storyboard
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"SecondStoryboard" bundle:nil];
UIViewController *viewCtrl = [storyboard instantiateInitialViewController];
[self presentViewController:viewCtrl animated:YES completion:nil];
2)根据ID加载storyboard
//根据storyboard ID加载storyboard
UIViewController *viewCtrl = [storyboard instantiateViewControllerWithIdentifier:@"redController"];
[self presentViewController:viewCtrl animated:YES completion:nil];