日记--3种加载xib的方法
2017-08-21 本文已影响16人
SimonRi
第一种
建立工程后,新建xib,将class定位当前的视图控制器(这里以UIViiewControl为例)
屏幕快照 2017-08-21 下午6.48.50.png
之后在xib里设计,(这里删除了原来的view,拖了两个新的btn进来,因此有两个view,这样可以加载一个xib里的多个view。一个与两个同理,),然后点击关联打开.m文件,分别拖拽两个btn创建两个新的属性。
屏幕快照 2017-08-21 下午6.54.05.png
打来file‘s Owner,将btn与左边对应。
屏幕快照 2017-08-21 下午6.54.50.png
最后.m中的ViewDidLoad代码,通过NSBundle。
[super viewDidLoad];
[[NSBundle mainBundle]loadNibNamed:@"View" owner:self options:nil];
[self.view addSubview:self.bt1];
[self.view addSubview:self.bt2]; //分别显示xib的第一个、第二个view
_bt1.frame = CGRectMake(200, 100, 200, 30);
_bt2.frame = CGRectMake(200, 200, 200, 30);
就完成了。
第二种
( 删除了原有的视图控制器)新建viewcontroler类,在最后一个菜单勾选同属创建xib。 xib设计一下,只要不是白的就可以。
接下来将创建的视图控制器设置为新的跟视图控制器并设置显示xib(以CTest为例)。
AppDelegate.m :
头文件加上:
#import “CTest.h”
之后第一个函数里写入:
self.window =[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
CTest *rootview = [[CTest alloc]initWithNibName:@"CTest" bundle:nil];
self.window.rootViewController = rootview;
[self.window makeKeyAndVisible];
OK
第三种
通过数组加载,view在xib中是安数组排列的,通过和数组可以加载制定资源。同时xib存放在NSBundle中,有以下代码:
[super viewDidLoad];
NSArray *ary = [[NSBundle mainBundle]loadNibNamed:@"View" owner:self options:nil];
[self.view addSubview:ary[1]]; //加载xib的第二个viwe
好像还有。。现在就看了这么多XD