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 ...
随机推荐
- iperf测试
在服务端运行iperf,输入命令iperf –s –p 12345 –i 1 –M 以在本机端口12345上启用iperf 在客户端运行iperf,输入命令iperf –c server-ip –p ...
- svn conflict
安装svn apt-get install subversion 当前两个人都更新版本为version1 A修改了monitor.txt文件 提交后版本为version2 B也修改了monitor.t ...
- 基于Cookie的SSO登录分析和实现
什么是SSO? 现在很多大的互联网公司都会有很多的应用,比如以下是淘宝网的截图: 天猫 聚划算 头条等都是不同的应用,有的甚至采用完全不同的域名,但是所有在淘宝注册的用户都是使用的一套用户名和口令,如 ...
- 使用backbone.js、zepto.js和trigger.io开发HTML5 App
为了力求运行速度快.响应迅即,我们推荐使用backbone.js和zepto.js. 为了让这个过程更有意思,我们开发了一个小小的示例项目,使用CSS重置样式.Backbone.js和带转场效果的几个 ...
- 斐波那契数列 递归 尾递归 递推 C++实现
==================================声明================================== 本文原创,转载请注明作者和出处,并保证文章的完整性(包括本 ...
- cocos2d-x之Action特效
bool HelloWorld::init() { if ( !Layer::init() ) { return false; } Size visibleSize = Director::getIn ...
- linux 创建和删除目录
创建目录命令 mkdir 目录名 [root@wang whp]# mkdir catalog[root@wang whp]# lscatalog [root@wang whp]# mkdir cat ...
- nginx 平滑升级tengine
wget http://tengine.taobao.org/download/tengine-1.5.1.tar.gz //下载Tengine1.5.1版本 tar zxvf tengine-1. ...
- DW Basic Knowledge1
以下内容,常读常新,每次都有新的感悟和认识. 数据仓库必须使组织机构的信息变得容易存取. 数据仓库的内容需要是容易理解的,数据对业务人员也必定是直观的,明显的. 数据仓库重新组织了原来OLTP数据库的 ...
- Ubuntu 12.04 DNS服务器的配置方法
Bind是一款开放源码的DNS服务器软件,由美国加州大学Berkeley分校开发和维护的,全名为Berkeley Internet Name Domain它是目前世界上使用最为广泛的DNS服务器软件, ...