一、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
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中的监听按钮点击事件, 点击后使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