Step by Step iOS Project In Action - 视图控制器
1. 什么是视图控制器(View Controller)
简单来说,视图控制器用来管理你所有的视图。
他们是你的视图和模型的粘合剂。
如果你做过MVC的Web项目,我想你应该不会对它感到陌生。
2. 视图控制器的声明周期
| Method | Description |
| loadView | 创建并返回一个视图控制器的视图 |
| viewDidLoad | 视图已经完成加载 |
| viewWillAppear | 视图将要呈现(有或者没有动画) |
| viewDidAppear | 视图完成呈现(有或者没有动画) |
| viewWillDisappear | 视图将要消失(有或者没有动画) |
| viewDidDisappear | 视图已经消失(有或者没有动画) |
| viewWillLayoutSubviews | 视图将要布局它的子视图 |
| viewDidLayoutSubviews | 视图已经完成它的子视图的布局 |
| didReceiveMemoryWarning | 视图收到内存即将耗尽的警告 |
3. 生命周期流程

4. 一些系统的视图控制器
| UIViewController subclass | Description |
| UINavigationController | 管理和导向类似树状层级的视图控制器 |
| UITabBarController | 以tab bar形式管理和呈现视图控制器 |
| UITableViewController | 以表格形式管理和呈现视图控制器 |
| UICollectionViewController | 以集合形式管理和呈现视图控制器 |
5. 自定义设备方向
// support just portrait
-(NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationPortrait;
} // support both portrait and landscape orientations(include upsidedown)
-(NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
} // support both portrait and landscape orientations
- (NSUInteger) supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscape;
}
Step by Step iOS Project In Action - 视图控制器的更多相关文章
- iOS Programming View Controllers 视图控制器
iOS Programming View Controllers 视图控制器 1.1 A view controller is an instance of a subclass of UIVi ...
- iOS学习22之视图控制器
1.自定义视图 1> 概述 定义视图:系统标准UI之外,自己组合而出的新的视图. 定义视图的优点: iOS提供了很多UI组件,借助它们我们可以实现不同的功能.尽管如此,实际开发中,我们还需要 ...
- iOS 动画学习之视图控制器转场动画
一.概述 1.系统会创建一个转场相关的上下文对象,传递到动画执行器的animateTransition:和transitionDuration:方法,同样,也会传递到交互Controller的star ...
- iOS CoCoa编程中视图控制器与视图类(转)
分类: iPhone2012-05-28 11:19 837人阅读 评论(0) 收藏 举报 cocoa编程iosuinavigationcontrolleruiviewiphone iPhone编程规 ...
- IOS Note - View Controller(视图控制器)
Application Delegate(应用程序委托) Application Name: SingleView SingleViewAppDelegate.h #import <UIKit/ ...
- iOS开发中视图控制器ViewControllers之间的数据传递
iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storybo ...
- PyTorch in Action: A Step by Step Tutorial
PyTorch in Action: A Step by Step Tutorial PyTorch in Action: A Step by Step Tutorial Installation ...
- WPF Step By Step 系列-Prism框架在项目中使用
WPF Step By Step 系列-Prism框架在项目中使用 回顾 上一篇,我们介绍了关于控件模板的用法,本节我们将继续说明WPF更加实用的内容,在大型的项目中如何使用Prism框架,并给予Pr ...
- WPF MVVM 架构 Step By Step(6)(把actions从view model解耦)
到现在为止,我们创建了一个简单的MVVM的例子,包含了实现了的属性和命令.我们现在有这样一个包含了例如textbox类似的输入元素的视图,textbox用绑定来和view model联系,像点击but ...
随机推荐
- 聊聊用CSS3来玩立方体
声明:本文为原创文章,如需转载,请注明来源WAxes,谢谢! 虽然现在很多浏览器都还不支持css3的3D转换,不过估计也已经有很多人都有玩css3的3D了......所以我这篇也就相当于水一下了,哈哈 ...
- hdoj 5119 Happy Matt Friends 背包DP
Happy Matt Friends Time Limit: 6000/6000 MS (Java/Others) Memory Limit: 510000/510000 K (Java/Others ...
- How to exit the entire application from a Python thread?
If all your threads except the main ones are daemons, the best approach is generally thread.interrup ...
- Node.js是一个事件驱动I/O服务端JavaScript环境
Node.js是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎.目的是为了提供撰写可扩充网络程序,如Web服务.第一个版本由Ryan Dahl于2009年发布,后来,Jo ...
- 在gdb将所有线程的堆栈输出到文件中去
http://m.blog.csdn.net/blog/lantianjialiang/40111253
- ASP.NET中Cookie跨域的问题及解决代码
ASP.NET中Cookie跨域的问题及解决代码 http://www.liyumei.net.cn/post/share18.html Cookies揭秘 http://www.cnblogs.c ...
- nginx重启命令方法(linux,centos,ubuntu)总结
原文:http://www.111cn.net/sys/nginx/62915.htm 平滑重启 如果服务器正在运行的Nginx要进行升级.添加或删除模块时,我们需 要停掉服务器并做相应修改,这样服务 ...
- [Shell学习笔记] 命令行下的高级网络工具cURL命令
原文: http://www.1987.name/365.html Linux curl命令是一个利用URL规则在命令行下工作的文件传输工具.它支持文件的上传和下载,所以是综合传输工具,但按传统,习惯 ...
- ubuntu C++开发环境
最近在VM中装了Ubuntu,为了开发程序,于是在网上找了些由于C/C++开发环境搭建的资料,供大家参考. 以下文字主要讲如何搭建Code::Blocks+wxWidgets. 搭建步骤: 1.安装编 ...
- 算法:插入排序(Insertion Sort)
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...