2011斯坦福大学iOS应用开发教程学习笔记(第六课)故事版
第六课 主要内容:多个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;
}
}
可以决定你是否跳转到这个页面,获取到即将跳转页面的controller的实例,这样可以提前去设置它的属性。
通过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];
}
获取后,把它push到navigationController展示。
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)
本文遵循“署名-非商业用途-保持一致”创作公用协议
2011斯坦福大学iOS应用开发教程学习笔记(第六课)故事版相关推荐
- 斯坦福大学iOS应用开发教程学习笔记(第六课)故事版 StoryBoard
第六课 主要内容:多个MVC的程序和故事版.UINavigationController. Segues 1.多个MVC 前面的程序都是一个MVC,多个View时,怎么办,那就需要多个Controll ...
- 2011斯坦福大学iOS应用开发教程学习笔记(第七课)Pad和iPhone的通用程序
第七课的主要内容:iPad 和iPhone的通用程序 这节课主要讲如何在一个程序里适配iPad 和iPhone. 内容简介 1.UIToolbar上面放的都是UIBarButtonItem 可以参考i ...
- 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C
2011年冬季斯坦福大学公开课 iOS应用开发教程是个很经典的教程,这个老头讲的很给力.做笔记总结. 第一课名称: MVC and Introduction to Objective-C 这课的主要内 ...
- 2011斯坦福大学iOS应用开发教程学习笔记(第二课)My First iOS App
2019独角兽企业重金招聘Python工程师标准>>> 第二课名称是: My First iOS App 我的第一个iOS应用 注意:我用的是XCode Version 4.5.2 ...
- 斯坦福大学iOS应用开发教程学习笔记(第七课)Pad和iPhone的通用程序
第七课的主要内容:iPad 和iPhone的通用程序 这节课主要讲如何在一个程序里适配iPad 和iPhone. 内容简介 1.UIToolbar上面放的都是UIBarButtonItem 可以参考i ...
- 阿里云HaaS100物联网开发板学习笔记(六)做个智能灯---一个完整的开发例子
摘要:本篇文章将前期几个专题综合起来,基于阿里云HaaS100的新固件设计制作一个智能灯.这个智能灯由云平台.手机APP端和设备端组成,基本上涵盖了一个物联网小项目所需的主要步骤. 目录 1.在阿里云 ...
- Cocos Creator游戏开发教程 学习笔记
学完提问几个问题吧: position的锚点位置数值原点在哪里? 因为position是相对坐标,所以原点是父节点的锚点 .所以Canvas下面的直属节点原点就是世界坐标系的原点Canvas的锚点. ...
- 二十一世纪大学英语读写基础教程学习笔记(原文)——5 - Shipwrecked in Antarctica(沉船南极洲)
Unit 5 - Shipwrecked in Antarctica(沉船南极洲) Ernest Shackleton made many great achievements in his life ...
- 二十一世纪大学英语读写基础教程学习笔记(原文)——10 - The Future(未来)
Unit 10 - The Future(未来) What will our future be like? What might happen in the year 2144? How far c ...
最新文章
- 【iOS开展-94】xcode6如何使用GIT以及如何添加太老项目GIT特征?
- 收藏|最优论文+代码查找神器,覆盖AI全领域(966个ML任务、8500+论文)
- C++17中那些值得关注的特性(上)
- Python - MySQL数据库操作
- window文件过长无法删除的处理方式
- python nltk lemmatizer_Python聊天机器人–使用NLTK和Keras构建第一个聊天机器人
- bigdecimal如何做除法_公务员行测朴素逻辑解题技巧—代入排除法
- 学一下Unix/C啊
- 防止网页后退--禁止缓存
- python网格搜索优化参数_python – 是否有可能通过网格搜索调整参数scikit-learn中的自定义内核?...
- 文安三中电子计算机老师叫什么,顶岗实习周记:记我的第一次.doc
- PHP程序员全栈,PHP程序员画的 “全栈工程师技能树” 思维导图
- P1359 租用游艇(dijkstra不优化)
- [点点搬家]与Perl厮混后感觉嘚儿嘚儿的
- 好事成双--庆祝牛郎织女一年一次的见面
- 创业思维的误区 (余世维)
- 【每日新闻】2019年大数据10大发展趋势出炉!
- 首款产后抑郁药问世;京东推出城市操作系统;阿里将推出全新销售平台;香港政府砸5300亿填海;脸书再爆隐私丑闻;这就是今天的大新闻...
- Grainger 固安捷 EDI 需求分析
- prusai3打印机使用教程_prusa i3 3D打印机固件Marlin配置初学者篇
热门文章
- 寂寞约会吧客服务器的微信是多少钱,约会专家倪淙岩:72招教你如何微信撩妹...
- AppleTalk--网络大典
- 小白学习编程遇到问题应该如何正确的提问
- Pytho 常见模块 / 用法备忘录
- linux终端字体颜色_使用printf打印出各种颜色字体
- linux时间转换及比较
- php代码输出笑脸,利用HTML5中的Canvas绘制笑脸的代码
- 抖音跳转微信小程序、公众号、个人微信、微信群技术路线
- C#基础+面向对象学习
- 怎么在本地运行java项目,eclipse怎么运行java web项目?