一、XIB的适用范围
xib(也叫Nib)与storyboard一样是用来描写叙述界面的。
storyboard描写叙述的是比較大型的,大范围.适合描写叙述界面跳转等.
二、XIB的使用
二、XIB的使用
Xib是小范围的的,是轻量级的.比較适合描写叙述小块的界面.
创建xib:新建界面里面user interface --》empty.
载入xib:[NSBundle mainBudle]loadNibNamed:XXX….]来载入xib
三、关于loadNibNameed方法
[[NSBundle mainBundle] loadNibNamed:@"MyXIB" owner:nil options:nil]; //一般使用方法
返回值:返回的NSArray是根视图下的视图个数(不包含子视图),例如以下图:仅仅返回2个,即View与Button。(不包含View中的子视图)
owner:指定对应的File's Owner
![](http://img.blog.csdn.net/20140617173611796?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveG40NTQ1OTQ1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
xib适用样例:
4.关于File’s Owner
转载请注明出处:http://blog.csdn.net/xn4545945
创建xib:新建界面里面user interface --》empty.
载入xib:[NSBundle mainBudle]loadNibNamed:XXX….]来载入xib
三、关于loadNibNameed方法
[[NSBundle mainBundle] loadNibNamed:@"MyXIB" owner:nil options:nil]; //一般使用方法
返回值:返回的NSArray是根视图下的视图个数(不包含子视图),例如以下图:仅仅返回2个,即View与Button。(不包含View中的子视图)
owner:指定对应的File's Owner
xib适用样例:
// // XNViewController.m // 09xib的使用, 仅仅是简单的载入xib, 没有设置filesowner不能进行连线. // // Created by neng on 14-6-5. // Copyright (c) 2014年 neng. All rights reserved. // #import "XNViewController.h" @interface XNViewController () { BOOL _sign;//測试玩 } @end @implementation XNViewController - (void)viewDidLoad { [super viewDidLoad]; _sign = NO; [self myLoadXib]; } /**载入xib*/ -(void)myLoadXib { //1.载入xib NSArray *views = [[NSBundle mainBundle] loadNibNamed:@"MyXIB" owner:nil options:nil]; //2.取出xib中的view并加入到父视图 UIView *myView = views[0]; UIButton *btn1 = (UIButton *)[myView viewWithTag:1]; UIButton *btn2 = (UIButton *)[myView viewWithTag:4]; [btn1 addTarget:self action:@selector(myClick) forControlEvents:UIControlEventTouchUpInside]; [btn2 addTarget:self action:@selector(myClick) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:myView]; //NSLog(@"%d",views.count); //返回的数组是视图的个数(不包含子视图) //另取一个.(数组中的顺序是依据xib文件里的的顺序来的) UIButton *btn = views[1]; btn.frame = CGRectMake(0, 333, btn.frame.size.width, btn.frame.size.height); [btn addTarget:self action:@selector(myClick) forControlEvents:UIControlEventTouchUpInside]; [self.view addSubview:btn]; } /**xib中的监听button点击事件, 点击后使storyboard中label文字改变*/ -(void)myClick { _sign = !_sign; if (_sign) { _myLabel.text = @"Hello!"; }else{ _myLabel.text = @"World!"; } } @end
4.关于File’s Owner
作用: 让xib也能像storyboard一样连线.
(storyboard默认生成的时候,class为相应的viewController,因此能直接和代码中方法进行连线)。
做法:
(1). 将xib中的class设置为相应的viewController.
(2). 并在loadNib时将owner设置为相应的viewController(即一般为self, 对象)。
(1). 将xib中的class设置为相应的viewController.
(2). 并在loadNib时将owner设置为相应的viewController(即一般为self, 对象)。
File’Owner不限于viewController,能够是不论什么类.
Class定义为哪个类,就能在哪个类中进行连线, 而要在loadNib时owner传入对应的对象就可以调用对应方法。(必须保持一致,否则调用方法时会出现找不到方法)
Class定义为哪个类,就能在哪个类中进行连线, 而要在loadNib时owner传入对应的对象就可以调用对应方法。(必须保持一致,否则调用方法时会出现找不到方法)
转载请注明出处:http://blog.csdn.net/xn4545945