iOS load Nib file 5 ways
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSInteger offsetY = 1;
#pragma mark - **************** 第一种种方式
/** owner 为nil*/
NSArray *array = [[NSBundle mainBundle] loadNibNamed:@"View1" owner:nil options:nil];
UIView *redView = array[0];
CGRect frame = redView.frame;
CGRect newframe = CGRectMake(frame.origin.x + 100, frame.origin.y * offsetY + 100, frame.size.width, frame.size.height);
//redView.backgroundColor = [UIColor redColor];
redView.frame = newframe;
[self.view addSubview:redView];
#pragma mark - **************** 第二种方式
offsetY++;
/** owner 为self*/
[[NSBundle mainBundle] loadNibNamed:@"View2" owner:self options:nil];
newframe = CGRectMake(frame.origin.x + 100, frame.origin.y + offsetY * 100, frame.size.width, frame.size.height);
_View2.frame = newframe;
[self.view addSubview:_View2];
#pragma mark - **************** 第三种方式
/** owner 为其他对象*/
offsetY++;
OwnerFileTest1 *owTest1 = [[OwnerFileTest1 alloc] init];
[[NSBundle mainBundle] loadNibNamed:@"View3" owner:owTest1 options:nil];
newframe = CGRectMake(frame.origin.x + 100, frame.origin.y + offsetY * 100, frame.size.width, frame.size.height);
owTest1.view3.frame = newframe;
[self.view addSubview:owTest1.view3];
#pragma mark - **************** 第四种方式
/** 指定Class Name 不指定File Owner*/
offsetY++;
_view4 = [[NSBundle mainBundle] loadNibNamed:@"View4" owner:nil options:nil][0];
newframe = CGRectMake(frame.origin.x + 100, frame.origin.y + offsetY * 100, frame.size.width, frame.size.height);
_view4.frame = newframe;
[self.view addSubview:_view4];
#pragma mark - **************** 第五种方式
/** 通过UIViewController的initWithNibName:bundle:方法加载xib文件中的视图*/
offsetY++;
MyViewControllerTest1 *vc1 = (MyViewControllerTest1 *)[[UIViewController alloc] initWithNibName:@"View5" bundle:[NSBundle mainBundle]];
newframe = CGRectMake(frame.origin.x + 100, frame.origin.y + offsetY * 100, frame.size.width, frame.size.height);
vc1.view.frame = newframe;
[self.view addSubview:vc1.view];
}