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 ...
随机推荐
- 【翻译】西川善司「实验做出的游戏图形」「GUILTY GEAR Xrd -SIGN-」中实现的「纯卡通动画的实时3D图形」的秘密,前篇(2)
Lighting和Shading(2)镜面反射的控制和模拟次级表面散射技术 http://www.4gamer.net/games/216/G021678/20140703095/index_2.ht ...
- 常用的PHP数据库操作方法(MYSQL版)
常用的PHP数据库操作方法(MYSQL版) 作者: 字体:[增加 减小] 类型:转载 时间:2011-06-08 最近一直在折腾自己的网站首页,写的大部分PHP脚本都要用到和MYSQL数据库相关的 ...
- thinkPHP实现瀑布流的方法
thinkPHP实现瀑布流的方法 文章TAG:thinkphp 瀑布流 时间:2014-11-29来源:www.aspku.com 作者:源码库 文章热度: 131 ℃ 过期已备案域名,注册就能用!终 ...
- Yii源码阅读笔记(十一)
controller类的render部分,用于渲染视图和布局文件: /** * Returns all ancestor modules of this controller. * 获取当前控制器所有 ...
- mysql 锁
Lock table有两种模式 lock tables table_name read [or write]; test1: session 1: lock tables tmp_xf_lock; ...
- Memcache 提高缓存命中率
最近手上某个项目跟新代码,新的代码里大量采用memcahce作为缓存.所以开始深入了解memcache的内存分配策略.以前就听说有个PHP写的memcache监控脚本,在网上搜索了一下,果断下载下来用 ...
- 原创:CentOS6.4配置solr 4.7.2+IK分词器
本文原创,转载请注明出处 相关资源下载:http://pan.baidu.com/s/1pJPpiqv 1.首先说明一下 solr是java语言开发的企业级应用服务器,所以你首先安装好jdk,配置好j ...
- Ubuntu 14.04 LTS 64bit 编译SDL的问题
http://blog.csdn.net/jhting/article/details/38523945 Ubuntu 14.04 LTS 64bit 编译SDL的问题 分类: C/C++2014-0 ...
- wget ftp
今天操作远端机器的时候发现少一个安装包, 需要传到对方的机器上,还能使用通过的老办法,直接SSH连上去了,发现传的很慢, 只有40K的样子, 看时间还需要二个多小时就有点受不了了.想想有一台FTP服务 ...
- Redis学习二 C#中如何进行这五种数据类型的操作
我在网上找了好久,就是没有找到Redis和C#结合的书,都是和别的编程语言在一起鬼混. 简单的用C#实现向Redis中插入那我中类型的数据 首先需要到NuGet 里面下载 Redis IDatabas ...