第六课 主要内容:多个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应用开发教程学习笔记(第六课)故事版相关推荐

  1. 斯坦福大学iOS应用开发教程学习笔记(第六课)故事版 StoryBoard

    第六课 主要内容:多个MVC的程序和故事版.UINavigationController. Segues 1.多个MVC 前面的程序都是一个MVC,多个View时,怎么办,那就需要多个Controll ...

  2. 2011斯坦福大学iOS应用开发教程学习笔记(第七课)Pad和iPhone的通用程序

    第七课的主要内容:iPad 和iPhone的通用程序 这节课主要讲如何在一个程序里适配iPad 和iPhone. 内容简介 1.UIToolbar上面放的都是UIBarButtonItem 可以参考i ...

  3. 2011斯坦福大学iOS应用开发教程学习笔记(第一课)MVC.and.Introduction.to.Objective-C

    2011年冬季斯坦福大学公开课 iOS应用开发教程是个很经典的教程,这个老头讲的很给力.做笔记总结. 第一课名称: MVC and Introduction to Objective-C 这课的主要内 ...

  4. 2011斯坦福大学iOS应用开发教程学习笔记(第二课)My First iOS App

    2019独角兽企业重金招聘Python工程师标准>>> 第二课名称是: My First iOS App 我的第一个iOS应用 注意:我用的是XCode Version 4.5.2 ...

  5. 斯坦福大学iOS应用开发教程学习笔记(第七课)Pad和iPhone的通用程序

    第七课的主要内容:iPad 和iPhone的通用程序 这节课主要讲如何在一个程序里适配iPad 和iPhone. 内容简介 1.UIToolbar上面放的都是UIBarButtonItem 可以参考i ...

  6. 阿里云HaaS100物联网开发板学习笔记(六)做个智能灯---一个完整的开发例子

    摘要:本篇文章将前期几个专题综合起来,基于阿里云HaaS100的新固件设计制作一个智能灯.这个智能灯由云平台.手机APP端和设备端组成,基本上涵盖了一个物联网小项目所需的主要步骤. 目录 1.在阿里云 ...

  7. Cocos Creator游戏开发教程 学习笔记

    学完提问几个问题吧: position的锚点位置数值原点在哪里? 因为position是相对坐标,所以原点是父节点的锚点 .所以Canvas下面的直属节点原点就是世界坐标系的原点Canvas的锚点. ...

  8. 二十一世纪大学英语读写基础教程学习笔记(原文)——5 - Shipwrecked in Antarctica(沉船南极洲)

    Unit 5 - Shipwrecked in Antarctica(沉船南极洲) Ernest Shackleton made many great achievements in his life ...

  9. 二十一世纪大学英语读写基础教程学习笔记(原文)——10 - The Future(未来)

    Unit 10 - The Future(未来) What will our future be like? What might happen in the year 2144? How far c ...

最新文章

  1. 【iOS开展-94】xcode6如何使用GIT以及如何添加太老项目GIT特征?
  2. 收藏|最优论文+代码查找神器,覆盖AI全领域(966个ML任务、8500+论文)
  3. C++17中那些值得关注的特性(上)
  4. Python - MySQL数据库操作
  5. window文件过长无法删除的处理方式
  6. python nltk lemmatizer_Python聊天机器人–使用NLTK和Keras构建第一个聊天机器人
  7. bigdecimal如何做除法_公务员行测朴素逻辑解题技巧—代入排除法
  8. 学一下Unix/C啊
  9. 防止网页后退--禁止缓存
  10. python网格搜索优化参数_python – 是否有可能通过网格搜索调整参数scikit-learn中的自定义内核?...
  11. 文安三中电子计算机老师叫什么,顶岗实习周记:记我的第一次.doc
  12. PHP程序员全栈,PHP程序员画的 “全栈工程师技能树” 思维导图
  13. P1359 租用游艇(dijkstra不优化)
  14. [点点搬家]与Perl厮混后感觉嘚儿嘚儿的
  15. 好事成双--庆祝牛郎织女一年一次的见面
  16. 创业思维的误区 (余世维)
  17. 【每日新闻】2019年大数据10大发展趋势出炉!
  18. 首款产后抑郁药问世;京东推出城市操作系统;阿里将推出全新销售平台;香港政府砸5300亿填海;脸书再爆隐私丑闻;这就是今天的大新闻...
  19. Grainger 固安捷 EDI 需求分析
  20. prusai3打印机使用教程_prusa i3 3D打印机固件Marlin配置初学者篇

热门文章

  1. 寂寞约会吧客服务器的微信是多少钱,约会专家倪淙岩:72招教你如何微信撩妹...
  2. AppleTalk--网络大典
  3. 小白学习编程遇到问题应该如何正确的提问
  4. Pytho 常见模块 / 用法备忘录
  5. linux终端字体颜色_使用printf打印出各种颜色字体
  6. linux时间转换及比较
  7. php代码输出笑脸,利用HTML5中的Canvas绘制笑脸的代码
  8. 抖音跳转微信小程序、公众号、个人微信、微信群技术路线
  9. C#基础+面向对象学习
  10. 怎么在本地运行java项目,eclipse怎么运行java web项目?