iOS XIB IBAction, IBOutlet,Object 的使用

一:前言

xib 是iOS 中构建界面的一种方式,apple 推荐的方式是storyboard 的方式,UIStoryBoard 也是一种构建UI的方式。如果使用UIStoryBoard 创建, 在团队协作中通常 会建多个 UIStoryBoard,一个成员维护一个 。因为多个成员 在使用 git或者SVN等版本管理工具过程中 如果只有一个 UIStoryBoard  容易造成冲突。本篇主要介绍 XIB 中对于 自定义的 Object  自定义的 UI空间 如何 通过 IBAction,IBOutlet 等的方式 集成在 XIB 或者 StoryBoard 中。 

二: 代码示例

如 DEMO下载地址 所示。在 ViewController 中可以看到 我们并没有用代码设置相关的代理,也没有 新建任何对象 为何在控制台也有相关的console 输出。

1.0   如下图a 所示 xib -> Object  为xib 添加一个自定义的Object

a

这样 我们拖进去 一个Object,为这个 Object 指定 PropertyClass 这个类。并且重写了该类 的init 方法。发现打印了相关了信息。 说明在xib 中拖入的自定义的对象 xib 会创建相关的类,只是在 xib所属 ViewController 中并没有显示出来而已。

2.0  IBAction 使用

如下图b所示:

b

如果我们选中 xib 中某个按钮 按住 ctrl 键,指向我们 图A 中拖入的 Object 会出现 如 图C 中的


c


中的状态 点击 这个方法 。表示如果按钮点击 就会调用这个Object 的methodOne。 因为这个方法是 IBAction 修饰的 。  

3.0  IBOutlet  的使用 如图d 所示

d


IBSlider 中有个PropertySubClassOne 的 IBOutlet 的 属性。我们在XIB中 拖入一个 Object  A 设置成 PropertySubClassOne 的。 同样 往 XIB View中 拖入一个 UISlider 设置成 IBSlider 类型。 同样也可以关联 

这个Slider 和 A 关联起来 。  而  A中 有 //

@property(nonatomic,weak)IBOutletid delegate; 的同样也可以 如下图e  所示一样 不需要代码设置 关联ViewController


e


三 总结

诚如demo 中所说 

1.0测试 在 XIB 中 嵌套的 自定义的类对象为一个属性会调用

2.0测试 在 XIB 中 自定义的类 作为 UI控件的属性

3.0测试 在 XIB 中 通过 继承等 不同的 子类 子类中 设置代理

需要注意的是 :

4.0测试 在 XIB 中 单例的对象在 XIB Objects 中的使用在单例中会

调用init 对象方法 并不会 调用 类方法 因此会初始化多次 造成不是单例的

对象调用的是 init 方法实验证明 初始化了多次 。 毕竟XIB 中

的OBject 没这么智能。  因为 IB是不能使用  类方法 的。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,845评论 0 9
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,491评论 19 139
  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,375评论 30 472
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,670评论 25 709
  • 工作为你带来了薪酬。在很长的一段时间内,这将是你的经济来源,对于年轻人而言,这可能是你唯一的经济来源;而这份薪酬...
    平安老九阅读 3,593评论 1 1