第六课 主要内容:多个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)
本文遵循“署名-非商业用途-保持一致”创作公用协议
分享到:
相关推荐
IOS应用源码——斯坦福大学公开课:iOS程序开发教程(PPT+代码).zip
资源名称:2013斯坦福大学公开课iOS开发课程PPT(18课)资源目录:【】斯坦福ios开发课程2013 PPT课件【】斯坦福公开课ios开发2013版本0118【】斯坦福公开课ios开发2013版本0218【】斯坦福公开课ios开发2013版本0318...
斯坦福大学iOS开发公开课PPT教程(2010年秋)
斯坦福大学公开课:ios7应用开发第五讲Attributor源码,刚刚编写完毕,可直接下载运行。
斯坦福大学公开课:iOS 7应用开发 本课程共18集 翻译完 欢迎学习 课程介绍 最新更新课程,适用于iOS7。本课程介绍了使用Xcode5建造iPhone平台上的应用程序所需的工具和应用程序接口;使用多点触控技术,为手机等终端...
斯坦福大学公开课:iOS 7应用开发 全套课件课后作业 加全套优化字幕 ,文件太大分两个压缩包,另一个见ios7 all_in_one_2,字幕可以直接加载,mac os 在mplayer里面可以直接切换字幕
斯坦福大学公开课 ios5 详细讲解第一个ios程序Calculator 以及 Xcode的使用 斯坦福经典教程。适合初学者快速入门。下载看看吧。
斯坦福大学公开课《iOS 7》.part1 PDF+CODE
斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 13)
斯坦福大学公开课:ios7应用开发第二讲和第三讲中讲述的基于第一讲的Michismon添加match改进版MichismonMatch源码,可直接运行
斯坦福大学公开课《iPad和iPhone应用开发(iOS5)》.part1 PDF+CODE
网易公开课--斯坦福大学公开课:iOS 7应用开发-源码,源自网络
斯坦福大学公开课 :机器学习课程。课件+原版讲义+学习笔记(全高清,最全!)
斯坦福大学公开课《Developing iOS 8 Apps with Swift》PDF
斯坦福大学公开课:IOS7应用开发课件PPT developing-ios-7-apps-for standford ios7
斯坦福大学公开课《iPad和iPhone应用开发(iOS5)》.part2 PDF+CODE
包含了斯坦福大学公开课:ios7应用开发第一讲的Michismon源码,可直接运行。
斯坦福大学公开课-机器学习-个人笔记完整版v4.21,翻译并整理了重点
斯坦福公开课,ios开发demo http://v.163.com/movie/2014/1/F/D/M9H7S9F1H_M9H80B3FD.html
斯坦福大学公开课:IOS7应用开发课件PPT developing-ios-7-apps-for standford ios7