一、XIB的适用范围

xib(也叫Nib)与storyboard一样是用来描写叙述界面的。

storyboard描写叙述的是比較大型的,大范围.适合描写叙述界面跳转等.



二、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适用样例:

//
// 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,
对象)。


File’Owner不限于viewController,能够是不论什么类.

Class定义为哪个类,就能在哪个类中进行连线, 而要在loadNib时owner传入对应的对象就可以调用对应方法。(必须保持一致,否则调用方法时会出现找不到方法)

转载请注明出处:http://blog.csdn.net/xn4545945 


【iOS】Xib的使用与File'Owner总结的更多相关文章

  1. IOS Xib使用——为控制器添加Xib文件

    Xib文件是一个轻量级的用来描述局部界面的文件,它与StoryBoard类似,都是使用Interface Bulider工具进行编辑.但是StoryBoard是重量级的,它是用来描述整个软件的多个界面 ...

  2. Xib的使用与File'Owner总结

    Xib的使用与File'Owner总结 一.XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描述界面的. storyboard描述的是比较大型的,大范围.适合描述界面跳转等. 二 ...

  3. [转]ios 开发file's owner以及outlet与连线的理解

    转载地址:http://www.cocoachina.com/bbs/simple/?t108822.html xib文件本身可以看做是一个xml,app启动的时候会根据xml构造xib对应的界面及其 ...

  4. **IOS:xib文件解析(xib和storyboard的比较,一个轻量级一个重量级)

    使用Xcode做iOS项目,经常会和Xib文件打交道,因为Xib文件直观的展现出运行时视图的外观,所以上手非常容易,使用也很方便,但对于从未用纯代码写过视图的童鞋,多数对Xib的理解有些片面. Xib ...

  5. nib 加载过程分析以及对File’s Owner的理解

    nib loading的过程,这个是app文档里面有说到资源编程指南 1.  It loads the contents of the nib file and any referenced reso ...

  6. iOS - Xib

    前言 xib 文件可以被 Xcode 编译成 nib 文件,xib 文件本质上是一个 xml 文件,而 nib 文件就是编译后的二进制文件,该文件将视图等控件对象封装了起来,而在程序运行起来后,这些对 ...

  7. file's owner以及outlet与连线的理解

    转自:http://www.cnblogs.com/martin1009/archive/2012/06/01/2531028.html xib文件本身可以看做是一个xml,app启动的时候会根据xm ...

  8. ios xib或storyBoard的那些小方法

    今天看了一下xib里的一些小技巧,但是百度一搜的话,网上已经有人写过教程了,在这里我也就懒一下,不写那么详细了,就写一些如何百度的方法! 1."通过KVC修改占位文字的颜色" [t ...

  9. The File's Owner

    The File Owner is an instantiated, runtime object that owns the contents of your nib and its outlets ...

随机推荐

  1. Hybrid app 发展历程

    距离上一篇<基于微信 js-sdk 的简单应用>已经快一年了,说来真是惭愧.上次不久之后便换了工作,一直处于比较忙的状态.其次后面酣畅一段时间都没有从事移动相关的工作.直到今年3月份开始, ...

  2. OpenNMS在安装”我找不到jrrd.dll“错误的解决方法

    在Windows 2003 Server(虚拟机)安装OpenNMS.找不到jrrd.dll错误.尝试从学习OpenNMS官网下载jrrd-1.0.7.tar.gz,我们没有发现标dll文件,编译需要 ...

  3. springmvc 接收对象 滴灌摘要

    js 对象 该阵列看起来像 我明白http://blog.csdn.net/baicp3/article/details/12752255本文 我们指示样品棒 data3一个js对象.遗嘱java当代 ...

  4. 对于超大型SQL SERVER数据库执行DBCC操作

    原文:对于超大型SQL SERVER数据库执行DBCC操作 对于数据库维护,主要使用DBCC CHECKDB来实现,以下是对大型数据库的使用说明,小型数据库一般直接使用就可以了: 1.2008(200 ...

  5. 高性能mysql主存架构

    原文:高性能mysql主存架构 MySQL Replication(Master与Slave基本原理及配置) 主从mysql工作原理: 1:过程: (1)Mysql的复制(replication)是一 ...

  6. php用空格代替标点符号

    php作为常规赛的符号替换为空格 <? php $character = "!@#$%^&*于'纸'纸'文().,<>|[]'\":;}{-_+=? /a ...

  7. ASP.NET MVC 3: Razor中的@:和语法

    原文 ASP.NET MVC 3: Razor中的@:和语法 [原文发表地址] ASP.NET MVC 3: Razor’s @: and <text> syntax[原文发表时间] De ...

  8. 使用 Advanced Installer 打包 一键安装Web应用程序

    原文:使用 Advanced Installer 打包 一键安装Web应用程序 安装预览: 资源下载: 示例安装包 操作流程: 1.新建Asp.net Application. 2.设置应用程序名称和 ...

  9. 采用Visual Stuidio 2010 创建网站栏

    采用Visual Stuidio 2010 创建网站栏 Visual Stuidio 2010 该项目模板使创建网站栏/内容类型和列表变得非常方便. 1. 管理员身份打开Visual Stuidio ...

  10. discuz 7.2 faq.php sql注入了一些研究

    6.2号码(可能更早)上网本见exp,是一家discuz 7.2的sql注入漏洞 经过反复研究.最高在线人数exp它们存在于这些或那些问题,经过我自己的使用和变更摘要,使用的方法如以下: Discuz ...