Xib的使用与File'Owner总结
Xib的使用与File'Owner总结
一、XIB的适用范围
xib(也叫Nib)与storyboard一样是用来描述界面的。
二、XIB的使用
创建xib:新建界面里面user interface --》empty.
加载xib:[NSBundle mainBudle]loadNibNamed:XXX….]来加载xib
三、关于loadNibNamed方法
[[NSBundle mainBundle] loadNibNamed:@"MyXIB" owner:nil options:nil]; //一般用法
返回值:返回的NSArray是根视图下的视图个数(不包括子视图),如下图:只返回2个,即View与Button。(不包括View中的子视图)
xib适用例子:
- // XNViewController.m
- // 09xib的使用, 只是简单的加载xib, 没有设置filesowner不能进行连线.
- //
- #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
(1). 将xib中的class设置为对应的xxxViewController.
(2). 并在loadNib时将owner设置为对应的xxxViewController(即一般为self, 对象)。
Xib的使用与File'Owner总结的更多相关文章
- 【iOS】Xib的使用与File'Owner总结
一.XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描写叙述界面的. storyboard描写叙述的是比較大型的,大范围.适合描写叙述界面跳转等. 二.XIB的使用 Xib是小范 ...
- iOS nib file owner
nib文件中的file owner属性,设定后app在运行时加载nib文件的过程中会通过file owner重新建立nib文件中描述的控件与其在file owner中对应的IBOutlet或IBAct ...
- ios中xib的使用介绍
ios中Xib的使用 ios中xib的使用 Nib files are the quintessential(典型的) resource type used to create iOS and Mac ...
- IOS自定义表格UITableViewCell
在UITableView中,自定义表格,最原始是继承UITableViewCell,然后通过写代码方式去搞,但是这个费事了. 1.在storyboard中 给一个ViewController的tabi ...
- 用Swift实现一款天气预报APP(一)
这个系列的目录: 用Swift实现一款天气预报APP(一) 用Swift实现一款天气预报APP(二) 用Swift实现一款天气预报APP(三) Swift作为现在苹果极力推广的语言,发展的非常快.这个 ...
- iOS-cell的封装和重用
一.通过xib描述cell---(cell的高度一致,cell里面控件布局基本一样): 1.(M) 创建模型: -------------------------------------------- ...
- [转]ios 开发file's owner以及outlet与连线的理解
转载地址:http://www.cocoachina.com/bbs/simple/?t108822.html xib文件本身可以看做是一个xml,app启动的时候会根据xml构造xib对应的界面及其 ...
- file's owner以及outlet与连线的理解
转自:http://www.cnblogs.com/martin1009/archive/2012/06/01/2531028.html xib文件本身可以看做是一个xml,app启动的时候会根据xm ...
- The File's Owner
The File Owner is an instantiated, runtime object that owns the contents of your nib and its outlets ...
随机推荐
- 那些年我们没能bypass的xss filter
个人很喜欢收集xss payload.在这里把自己平时挖xss时会用到的payloads列出来和大家一起分享.很希望大家能把自己的一些payload也分享出来.(由于 我是linux党,所以本文出现在 ...
- windows batch语法
windows BATCH基本知识扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件. ==== 注 =============================== ...
- MySql之触发器【过度变量 new old】
trigger是由事件触发某个操作.这些事件包括insert语句.update语句和delete语句.当数据库执行这些事件时,就会激活触发器执行相应的操作. [1]只有一个执行语句 create tr ...
- Java类型相互转换byte[]类型,blob类型
在我们的程序开发当中,经常会用到java.sql.Blob.byte[].InputStream之间的相互转换,但在JDK的API当中,又没有直接给我们提供可用的API,下面的程序片段主要就是实现它们 ...
- NBUT 1635 Explosion(最小顶点覆盖)
[1635] Explosion 时间限制: 10000 ms 内存限制: 65535 K 问题描述 there is a country which contains n cities connec ...
- 前端CSS参考阅读
CSS 2.2 W3标准 http://dev.w3.org/csswg/css2/ CSS2 中文翻译 http://files.cnblogs.com/files/mize/CSS2_Chines ...
- jQuery 图片剪裁插件使用之 imgAreaSelect
插件主页:http://odyniec.net/projects/imgareaselect/ 官方网站上说明支持的浏览器:The plugin works in all major browsers ...
- Yii源码阅读笔记(十四)
Model类,集中整个应用的数据和业务逻辑——场景.属性和标签: /** * Returns a list of scenarios and the corresponding active attr ...
- RT-Thread互斥锁
互斥锁和信号量很相似, RT-Thread 中的互斥锁也有静态和动态之分,和互斥锁有关的操作如下:初始化—rt_mutex_init()(对应静态互斥锁):建立—rt_mutex_create()(对 ...
- coursera python 学习总结
为啥要写这篇总结?早上突然想到了四个字:知行合一.实践,总结,再实践,再总结经验,积累经验,为己所用.闲话少叙,来干货: 1.目标要单一,如果想要完成课程,还要健身,还要玩玩游戏.看看电影,还学别的课 ...