关闭

【iOS】Xib的使用与File'Owner总结

标签: ios
207人阅读 评论(0) 收藏 举报
分类:

一、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适用例子:
[objc] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. //  
  2. //  XNViewController.m  
  3. //  09xib的使用, 只是简单的加载xib, 没有设置filesowner不能进行连线.  
  4. //  
  5. //  Created by neng on 14-6-5.  
  6. //  Copyright (c) 2014年 neng. All rights reserved.  
  7. //  
  8.   
  9. #import "XNViewController.h"  
  10.   
  11. @interface XNViewController ()  
  12. {  
  13.     BOOL _sign;//测试玩  
  14. }  
  15. @end  
  16.   
  17. @implementation XNViewController  
  18.   
  19. - (void)viewDidLoad  
  20. {  
  21.     [super viewDidLoad];  
  22.       
  23.     _sign = NO;  
  24.     [self myLoadXib];  
  25. }  
  26.   
  27. /**加载xib*/  
  28. -(void)myLoadXib  
  29. {  
  30.     //1.加载xib  
  31.     NSArray *views =  [[NSBundle mainBundle] loadNibNamed:@"MyXIB" owner:nil options:nil];  
  32.     //2.取出xib中的view并添加到父视图  
  33.     UIView *myView = views[0];  
  34.     UIButton *btn1 = (UIButton *)[myView viewWithTag:1];  
  35.     UIButton *btn2 = (UIButton *)[myView viewWithTag:4];  
  36.       
  37.     [btn1 addTarget:self action:@selector(myClick) forControlEvents:UIControlEventTouchUpInside];  
  38.     [btn2 addTarget:self action:@selector(myClick) forControlEvents:UIControlEventTouchUpInside];  
  39.       
  40.     [self.view addSubview:myView];  
  41.       
  42.     //NSLog(@"%d",views.count);  //返回的数组是视图的个数(不包括子视图)  
  43.       
  44.     //另取一个.(数组中的顺序是根据xib文件中的的顺序来的)  
  45.     UIButton *btn = views[1];  
  46.     btn.frame = CGRectMake(0333, btn.frame.size.width, btn.frame.size.height);  
  47.     [btn addTarget:self action:@selector(myClick) forControlEvents:UIControlEventTouchUpInside];  
  48.     [self.view  addSubview:btn];  
  49. }  
  50.   
  51. /**xib中的监听按钮点击事件, 点击后使storyboard中label文字改变*/  
  52. -(void)myClick  
  53. {  
  54.     _sign = !_sign;  
  55.     if (_sign) {  
  56.         _myLabel.text = @"Hello!";  
  57.     }else{  
  58.         _myLabel.text = @"World!";  
  59.     }  
  60. }  
  61.   
  62. @end  

4.关于File’s Owner

作用 让xib也能像storyboard一样连线. (storyboard默认生成的时候,class为对应的viewController,因此能直接和代码中方法进行连线)。

做法:
(1)
. 将xib中的class设置为对应的viewController.
(2)
. 并在loadNib时将owner设置为对应的viewController(即一般为self, 对象)。

File’Owner不限于viewController,可以是任何类.
Class
定义为哪个类,就能在哪个类中进行连线, 而要在loadNibowner传入相应的对象即可调用相应方法。(必须保持一致,否则调用方法时会出现找不到方法)
0
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

【iOS开发】Xib的使用与File's Owner总结

一、XIB的适用范围xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的,大范围.适合描述界面跳转等.二、XIB的使用Xib是小范围的的,是轻量级...
  • Hanrovey
  • Hanrovey
  • 2016-08-14 00:02
  • 1671

【iOS】Xib的使用与File'Owner总结

一、XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的, 大范围.适合描述界面跳转等. 二、XIB的使用 Xib是小范...
  • xn4545945
  • xn4545945
  • 2014-06-17 17:44
  • 14789

iOS开发:XIB使用技巧总结

做了多款应用之后,UI方面从最初的纯代码打造,到现在的XIB方式,再到StoryBoard这当中目前为止用得最多的XIB,熟练且快速。当然不少开发者认为苹果未来将主力打造StoryBoard,窃以为然...
  • hmxiao_1983
  • hmxiao_1983
  • 2014-01-28 11:54
  • 1189

【iOS】Xib的使用与File'Owner总结

一、XIB的适用范围 xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的,大范围.适合描述界面跳转等. 二、XIB的...
  • xinzhou201
  • xinzhou201
  • 2015-10-14 19:20
  • 375

IOS 使用XIB 自定义View

  • 2012-10-31 10:24
  • 54KB
  • 下载

【iOS开发】Xib的使用与File's Owner总结

一、XIB的适用范围xib(也叫Nib)与storyboard一样是用来描述界面的。 storyboard描述的是比较大型的,大范围.适合描述界面跳转等.二、XIB的使用Xib是小范围的的,是轻量级...
  • Hanrovey
  • Hanrovey
  • 2016-08-14 00:02
  • 1671

IOS 使用XIB 自定义View

一般自定义View       代码方式 有       在初始化的时候添加 子Views [cpp] view plaincopy - ...
  • xxq_2011
  • xxq_2011
  • 2013-07-03 10:50
  • 857

IOS使用Xib创建自定义View

新建object-c类,从UIView继承,如新建FlagView #import @class FlagBean; @interface FlagView : UIView @pr...
  • wangjia55
  • wangjia55
  • 2016-01-15 20:40
  • 8439

IOS——第二个View中使用TabbarController例子,tabbar中页面间通过非tabbar按钮跳转(xib布局)

该教程为自己记录使用,要求读者至少有一点点简单的Xcode开发经验即可 Demo功能介绍: 下图所示即可知道,TabbarController是控制器,控制着五个页面的 Demo创建过程:...
  • u012476249
  • u012476249
  • 2014-09-03 18:47
  • 1917

iOS使用xib自定义UIView 遇到的问题

欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接和...
  • zuojinmin
  • zuojinmin
  • 2017-12-28 17:23
  • 40
    个人资料
    • 访问:151513次
    • 积分:2646
    • 等级:
    • 排名:第15864名
    • 原创:105篇
    • 转载:73篇
    • 译文:0篇
    • 评论:13条
    文章分类
    最新评论