斯坦福大学iOS应用开发教程学习笔记(第六课)故事版 StoryBoard
来源:互联网 发布:大数据职称 编辑:程序博客网 时间:2024/06/05 23:48
第六课 主要内容:多个MVC的程序和故事版、UINavigationController、 Segues
1、多个MVC
前面的程序都是一个MVC,多个View时,怎么办,那就需要多个Controller。一个MVC只能控制一屏幕或更小的区域。
那如何切换两个MVC呢,用控制器群里的控制器:UINavigationController。
2、UINavigationController是个控制器
也是继承于UIVIewController。UINavigationController的长相如下图:
中间有个title。
它是个特殊的controller,因为它有一个Outlet只向一另外一个MVC,就是它的rootViewController。
rootViewController就是出现在白色区域的。原来的rootViewController放到UINavigationController后,它 的bounds高度会变小一些。
通过执行一个segues,可以跳转到另外一个MVC上。就是把新的MVC push都屏幕上,点返回,把当前的MVC pop出来。
3、segues
segues有三种方式:
push
model
custom
4、添加Navigation Controller
选中你要嵌入的view Controllser,然后通过Editor的 Embed in包含进来一个Navigation Controller。
这个箭头表示程序的开始。
5、pop一个ViewController的方法:
- - (void)popViewControllerAnimated:(BOOL)animated;
6、两个关于segues非常重要的方法
跳转前准备的方法
- - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
- {
- if ([segue.identifier isEqualToString:@“DoAParticularThing”]) {
- UIViewController *newController = segue.destinationViewController;
- }
- }
通过Identifier跳转的方法:
- - (void)performSegueWithIdentifier:(NSString *)segueId sender:(id)sender;
- - (IBAction)rentEquipment
- {
- if (self.snowTraversingTalent == Skiing) {
- [self performSegueWithIdentifier:@“AskAboutSkis” sender:self];
- } else {
- [self performSegueWithIdentifier:@“AskAboutSnowboard” sender:self];
- }
- }
7、通过故事版来实例化一个ViewController的方法
- NSString *vcid = @“something”;
- UIViewController *controller = [storyboard instantiateViewControllerWithIdentifier:vcid];
self.storyboard是一个ViewController的属性。
- - (IBAction)doit
- {
- DoitViewController *doit =
- [self.storyboard instantiateViewControllerWithIdentifier:@”doit1”];
- doit.infoDoitNeeds = self.info;
- [self.navigationController pushViewController:doit animated:YES];
- }
8、一个StoryBoard和Segues的Demo
主要内容:
- 在两个viewController之间创建segue
- 把ViewController内嵌到NavigationController中去。
segue有两个很重要的属性
- identifier
- destinationViewController
Demo源码下载地址:http://www.stanford.edu/class/cs193p/cgi-bin/drupal/downloads-2011-fall
容芳志 (http://blog.csdn.net/totogo2010)
本文遵循“署名-非商业用途-保持一致”创作公用协议
原文地址:http://blog.csdn.net/totogo2010/article/details/8226430
- 斯坦福大学iOS应用开发教程学习笔记(第六课)故事版 StoryBoard
- 2011斯坦福大学iOS应用开发教程学习笔记(第六课)故事版
- 2011斯坦福大学iOS应用开发教程学习笔记(第六课)故事版
- 2011斯坦福大学iOS应用开发教程学习笔记(第六课)故事版
- 2011斯坦福大学iOS应用开发教程学习笔记(第六课)故事版
- 斯坦福大学公开课 iOS应用开发教程学习笔记(第六课)多个MVC的程序和故事版、UINavigationController、 Segues
- 斯坦福大学iOS应用开发教程学习笔记
- 斯坦福大学iOS应用开发教程学习笔记
- 斯坦福大学iOS应用开发教程学习笔记
- IOS学习之斯坦福大学IOS开发课程笔记(第六课)
- IOS学习之斯坦福大学IOS开发课程笔记(第六课)
- 斯坦福大学iOS应用开发教程学习笔记(第二课) 计算器实现2 改进版
- 2011斯坦福大学iOS应用开发教程学习笔记(第二课)My First iOS App
- 2011斯坦福大学iOS应用开发教程学习笔记(第二课)My First iOS App
- 2011斯坦福大学iOS应用开发教程学习笔记(第二课)My First iOS App
- 斯坦福大学iOS应用开发教程学习笔记(第二课)My First iOS App
- 2011年冬斯坦福大学公开课 iOS应用开发教程学习笔记(第四课) Views 视图
- 2011年冬斯坦福大学公开课 iOS应用开发教程学习笔记(第四课) Views 视图
- 题目:输入一个整形数组,数组里有正数也有负数。数组中连续的一个或多个整数组成一个子数组,每个 子数组都有一个和。求所有子数组的和的最大值。要求时间复杂度为 O(n)。
- USACO Section 2.1 Hamming Codes
- ASP.NET动态网站开发培训-16.DataList控件(三)
- 定义栈的数据结构,要求添加一个 min 函数,能够得到栈的最小元素。要求函数 min、push 以及 pop 的时间复杂度都是 O(1)。
- python 科学计算学习一:numpy文件存取,内存映射
- 斯坦福大学iOS应用开发教程学习笔记(第六课)故事版 StoryBoard
- ATL 属性为BSTR 时数据处理
- Maven实战(一)安装和配置
- 7.什么时候用assert。
- LCS, longest common sequence
- 编程珠玑第四章习题答案
- tar.xz文件如何解压
- Java泛型总结(高级)
- 四大护法撒广东省罚款了话费撒娇赶紧打开是垃圾老公的斯科拉给大家斯科拉就看了