一、多场景故事板

1、基础

视图控制器(ViewController):负责管理用户与其IOS设备交互的类;
场景(Scene):视图控制器和视图的独特组合;
切换(Segue):切换是场景的过渡,常使用视觉过渡效果;
模态视图(Modal View):在需要进行用户交互时,通过模态视图显示在另一个视图上;
关系(Relationship):类似于切换,用于某些类型的视图控制器,如选项卡栏控制器。关系是在主选项卡栏的按钮之间创建的,当用户触摸这些按钮时会显示独立的场景;
故事板(Storyboard):包含项目中场景、切换和关系定义的文件。

故事板提供了一个空间,让用户能够以可视化方式描述应用程序的设计和工作流程。每个场景都是一个用户将遇到的屏幕。每个切换都是场景间过渡。

2、简单示例

1)、创建一个新的项目,选择Single View模式,只包含一个视图控制器和视图,也就是说只包含一个场景。
2)、在故事板中添加场景:在IB中打开storyBoard,在对象库中选取View Controller,将其拖动到IB编辑器的空白区域,这样就在故事板中成功地添加了一个视图控制器和相应的视图,从而新增了一个场景。

3)、给场景命名

默认情况下,每个场景都会根据其视图控制器类来命名,在项目中已经有一个名为ViewController的类了,所以在文档大纲中,默认场景名为ViewController Scene。而现在新增的场景还没有为其指定视图控制器类,所以该场景也名为ViewController Scene。如果继续添加更多的场景,这些场景也都会被命名为ViewController Scene。

为了解决同名问题,有两种办法:
    一是添加视图控制器类,并将其指定给新场景;
    二是根据自己的意思来给场景指定名称,这样往往更有意义。

选择视图控制器,打开属性Identity Inspector并展开,然后在文本框Label中输入场景名。Xcode将自动在后面添加Scene,因此我们无须添加Scene。

    

4)、添加提供支持的视图控制器子类

在故事板中添加新场景后,需要将其与代码关联起来。在模板Single View Application中,已经将初始视图的视图控制器配置成了类ViewController的一个实例,并且有它的ViewController.h和ViewController.m文件。

同样,现在为了支持新的场景,需要在项目中添加UIViewController的子类。添加办法是在项目导航器可见的情况下,点击左下角的"+"按钮,然后选择"NewFile"选项。

    

最后将新添加的类加入项目,点击Create按钮,就好了。

这时候,新场景就像是一个新的应用程序,和默认的场景是彼此独立的,不能在该场景和原来的场景之间交换数据,也不能在它们之间过渡。

5)、创建切换

最简单的方式是,在第一个场景上添加一个按钮,按住Control键,拖动到第二个场景,松开鼠标会弹出一个故事板切换框:

一般选择modal(模态)过渡,其它切换用于特殊情形,且仅在这些情形下才管用。

将切换加入到项目后,可以看到两个场景之间有一条线将它们连接在一起:

现在运行项目,点击默认场景的Button按钮,会跳出第二个场景。

注:
从开始到现在,都没有编写任何代码,就能在场景之间切换。但是这有它的局限性:
不能以编程方式与这样的切换交互;
切换到目标视图后,就不能返回到原来的视图,为了返回到原来的视图,需要编写代码。

转载于:https://www.cnblogs.com/xsjayz/archive/2013/04/10/3012635.html

IOS开发(九):场景相关推荐

  1. iOS开发-面试总结(九)

    iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. ...

  2. Objective-C(十九、通知-消息发送模式之中的一个)——iOS开发基础

    结合之前的学习笔记以及參考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结. 知识点一直在变.仅仅是作为參考.以苹果官方文档为准~ 十九.通知-消息 ...

  3. IOS开发笔记(九)——IM聊天工具个人详情页面,自定义tableview的accessaryView

    中山大学数据科学与计算机学院本科生实验报告 (2019年春季学期) 课程名称 IOS开发 任课老师 郑贵锋 年级 16 专业(方向) 软件工程(计算机应用方向) 学号 16340132 姓名 梁颖霖 ...

  4. iOS开发笔记之五十九——OS X和iOS安全机制之一——签名机制

    一.背景 在OS X上病毒和恶意软件很少见,给大家的感觉是OS X和iOS更加安全.到底是什么原因导致的OS X更加安全呢? (1)OS X占有率较低,没有吸引足够的恶意软件开发者的注意(假设你是恶意 ...

  5. iOS开发 常见错误

    一.NSAppTransportSecurity 错误提示:NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL ...

  6. iOS开发笔记之八十一——2020 iOS面试总结《一》之干货篇

    ******阅读完此文,大概需要5分钟****** 这是我毕业之后第三次开始找工作了,适逢2019年底,我清楚地知道,iOS开发已经不是很景气了,尽管自己有名校以及大厂背景,但是自己一点都没有把握,自 ...

  7. IOS开发:一个iOS开发者的修真之路

    在微信上有童鞋问我iOS开发者的入门标准是神马?这个问题难到我了,而且贸然给一个答案出来的话,必定会有万千高手来喷. 凡人修仙,仙人修道,道人修真.当我们还是一个在青石板上蹲马步汗水涔涔的废柴时,或许 ...

  8. 校园招聘iOS开发岗位面试题集锦(2017)

    转发自:  http://blog.csdn.net/chenyufeng1991/article/details/53472284#comments 一.搜狐快站 1.谈谈你做过的项目: 2.项目中 ...

  9. 2017秋季校园招聘iOS开发岗位面试题集锦

    笔者参加了2017秋季不少的校招iOS岗位面试,下面我把这些面试题都贴出来和大家共勉: 一.搜狐快站 1.谈谈你做过的项目: 2.项目中最有成就感的部分: 3.倒计时如何实现?(NSTimer,还有其 ...

最新文章

  1. 启发下一代AI研究,《认知神经智能科学》专刊发布[附资料下载]
  2. uclibc和glibc的差别
  3. Linux学习:shell命令
  4. 动态规划矩阵连乘问题
  5. F1 Query: Declarative Querying at Scale
  6. 注解-@Conditional的使用
  7. IntelliJ Idea学习笔记003---【Intellij IDEA】eclipse项目导入
  8. 转件工程--实践者的研究方法阅读笔记1
  9. 新年新气象[xgluxv]
  10. Java Bean 与Spring Bean 的区别
  11. 阶段3 2.Spring_08.面向切面编程 AOP_3 spring基于XML的AOP-编写必要的代码
  12. nginx 1.8.0下载
  13. 国军标gjb150a振动冲击试验标准
  14. sonar8.9.1导出扫描结果pdf 实操
  15. python键值对是什么意思_python键值对
  16. 固件中的单个二进制模拟:Tenda AC15 路由器 CVE-2018-5767 / CVE-2020-10987 漏洞分析与复现
  17. 三个数差的平方公式推导过程_学懂因式分解 你只差这8个完全平方公式推导结论 立马见效...
  18. php类的开发语言,php是什么开发语言
  19. 我的世界java地狱更新_【我的世界】我得世界:1.16地狱大年夜更新_玩得好游戏攻略...
  20. Android之人脸识别

热门文章

  1. java 优雅退出_java – 优雅地退出应用程序?
  2. cmenu 隐藏子项中的一个子项_区分Maven中dependencyManagement与dependencies的作用
  3. CTF web题总结--http header 修改、cookie注入
  4. Java基础学习总结(12)——一哈希编码HashCode
  5. CSS 从入门到放弃系列:CSS的引入方式
  6. 前端学Markdown
  7. 2016年软考网络工程师考试命题范围变化之网络设备配置与复习技巧
  8. centos6.5下安装docker
  9. 学习quartz定时
  10. AndroidMainifest标签说明2——lt;activitygt;