ViewController与outlet绑定
ViewController的作用
ViewController与XIB一一对应,用于分离独立出可重用组件单元,如单个组件、复合组件、界面片段、整个界面等。
通常继承 UIViewController 获取相关生命周期方法,以合适的时机初始化其各个组件。
通过不同的ViewController加载方式决定其作为其他界面的组成部分或作为独立界面展示。
ViewController与Cell中的outlet绑定
XIB的File’s Owner属性中Custom Class一般用于绑定Controller类型的类,以管理整个XIB的所有控件。
当前XIB作为独立界面整体或可重用界面一部分(Android中的Fragment概念)时,outlet应绑定到该Controller类上,绑定关系出现在File’s Owner的链接检查页面中,此后Controller类对象将代理接管被注入的outlet控件。
通过loadNibNamed等方式初始化一个XIB视图时,outlet绑定的控件通过owner参数注入目标Controller类对象中。
作为Cell的XIB,应该将视图树的根节点(Cell类型的View)的Custom Class属性指向自定义的Cell实现类,File’s Owner的Custom Class保持为空(NSObject)。
控件outlet绑定到自定义Cell实现类中,绑定关系出现在根节点的CellView上而非File’s Owner上。
此后在Cell视图被实例化时,将绑定的outlet控件自动注入到当前实例对象中自行管理。
通过dequeueReusableCellWithIdentifier获取一个Cell视图时,outlet绑定的控件自动注入到Cell指定的实现类对象中。
若File’s Owner指定了Custom Class,则outlet会自动转接绑定在File’s Owner的指向类上,初始化Cell时将抛出this class is not key value coding-compliant for the key collection cell..错误。
ViewController与outlet绑定的更多相关文章
- QFramework 使用指南 2020 (四):脚本生成(2)ViewController 与 ViewController 嵌套绑定
在上一篇,我们学习了,脚本生成的基本使用. 在这一篇,我们试着深入,聊聊脚本生成给我们带来的便利. 脚本生成的便利 首先,我们要知道,在 Unity 的游戏世界中都是以 GameObject 为单位的 ...
- NSInternalInconsistencyException: loaded the "XXXView" nib but the view outlet was not set
运行过程中App崩溃,报错如标题. 原因: viewController的view没有绑定xib的view. 解决方法: 在File's Owner中将view与viewController的view ...
- 浅谈MVC和MVVM模式
MVC I’m dating with a model… and a view, and a controller. 众所周知,MVC 是开发客户端最经典的设计模式,iOS 开发也不例外,但是 MVC ...
- MVC、MVVM
一.MVC 所谓的 MVC 是指: Model: 数据的拥有者,实现具体的业务逻辑. View: 具体的用户界面,如按钮.列表.图片. Controller: 负责将 View 中用户的动作传达给 M ...
- iOS-技术细节整理
遇到未使用类,可以看看xcode->help->developer documentation 下面做一下简单的技术细节整理 Auto Layout使用Auto Layout来灵活改变UI ...
- iOS开发技巧
一.寻找最近公共View 我们将一个路径中的所有点先放进 NSSet 中.因为 NSSet 的内部实现是一个 hash 表,所以查找元素的时间复杂度变成了 O(1),我们一共有 N 个节点,所以总时间 ...
- 【转】iOS开发--一步步教你彻底学会『iOS应用间相互跳转』
1. 应用间相互跳转简介 在iOS开发的过程中,我们经常会遇到需要从一个应用程序A跳转到另一个应用程序B的场景.这就需要我们掌握iOS应用程序之间的相互跳转知识. 下面来看看我们在开发过程中遇到的应用 ...
- ExtJS5搭建MVVM框架
概述 · ExtJs5能够搭建Js的MVC框架,通过配置路由能够通过左边树形菜单导航到所需的页面,效果如下: 搭建JS框架 新建home.htm页面作为ExtJs加载的主体页面,页面引入ExtJs需要 ...
- iOS: 动态更改 backBarButtonItem 的 title
先来看一下 UIBarItem 的 title 的描述 The title displayed on the item. You should set this property before add ...
随机推荐
- 获取byte数组的实际使用长度
背景:byte.length只能获取到初始化的byte数组长度,而不是实际使用的长度,因此想要获取到实际的使用长度只能靠其他方法实现. 方法一: public class ByteActualLeng ...
- Eclipse報錯:Could not find or load main class
代碼正確,但在Eclipse中無法運行,一直報錯: Could not find or load main class
- 手机远程调试工具spy-debugger
关于spy-debugger 1.一站式页面调试工具,远程调试任何手机浏览器页面,任何手机移动端webview(如:微信,HybirdApp等)HTTP/HTTPS.2.spy-debugger内 ...
- JRE与JDK的区别
转自:http://swiftlet.net/archives/639 1. 定义JRE(Java Runtime Enviroment)是Java的运行环境.面向Java程序的使用者,而不是开发者. ...
- MapReduce形象总结
We want to count all to the books in the library.You count up shelf #1,I count up shelf #2. That's a ...
- 百度地图秘钥ak的获取
今天打开网站的时候出现了这个问题“百度未授权使用地图API, 可能是因为您提供的密钥不是有效的百度开放平台密钥或此密钥未对本应用的百度地图JavasoriptAPI授权.....”经过研究终于知道什么 ...
- Genesis 2.8-2.12
And the LORD God planted a garden eastward in Eden; and there he put the man whom he had formed. 9 A ...
- noip2008普及组3题题解-rLq
(第一次写题解,随意喷) (只是前一天的作业哈) (先凑个数) 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈 ...
- selenium向富文本框填写内容的几种方式
富文本框如果是iframe,则用下 1.先跳转到irame,dr.switchTo().frame(wtext); 然后用js JavascriptExecutor jsExecutor = (Jav ...
- 【实践】jdbc批量插入数据
参考文献:http://my.oschina.net/u/1452675/blog/203670 http://superjavason.iteye.com/blog/255423 /*测试批量写入数 ...