IOS开发(九):场景
一、多场景故事板
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开发(九):场景相关推荐
- iOS开发-面试总结(九)
iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. ...
- Objective-C(十九、通知-消息发送模式之中的一个)——iOS开发基础
结合之前的学习笔记以及參考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结. 知识点一直在变.仅仅是作为參考.以苹果官方文档为准~ 十九.通知-消息 ...
- IOS开发笔记(九)——IM聊天工具个人详情页面,自定义tableview的accessaryView
中山大学数据科学与计算机学院本科生实验报告 (2019年春季学期) 课程名称 IOS开发 任课老师 郑贵锋 年级 16 专业(方向) 软件工程(计算机应用方向) 学号 16340132 姓名 梁颖霖 ...
- iOS开发笔记之五十九——OS X和iOS安全机制之一——签名机制
一.背景 在OS X上病毒和恶意软件很少见,给大家的感觉是OS X和iOS更加安全.到底是什么原因导致的OS X更加安全呢? (1)OS X占有率较低,没有吸引足够的恶意软件开发者的注意(假设你是恶意 ...
- iOS开发 常见错误
一.NSAppTransportSecurity 错误提示:NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL ...
- iOS开发笔记之八十一——2020 iOS面试总结《一》之干货篇
******阅读完此文,大概需要5分钟****** 这是我毕业之后第三次开始找工作了,适逢2019年底,我清楚地知道,iOS开发已经不是很景气了,尽管自己有名校以及大厂背景,但是自己一点都没有把握,自 ...
- IOS开发:一个iOS开发者的修真之路
在微信上有童鞋问我iOS开发者的入门标准是神马?这个问题难到我了,而且贸然给一个答案出来的话,必定会有万千高手来喷. 凡人修仙,仙人修道,道人修真.当我们还是一个在青石板上蹲马步汗水涔涔的废柴时,或许 ...
- 校园招聘iOS开发岗位面试题集锦(2017)
转发自: http://blog.csdn.net/chenyufeng1991/article/details/53472284#comments 一.搜狐快站 1.谈谈你做过的项目: 2.项目中 ...
- 2017秋季校园招聘iOS开发岗位面试题集锦
笔者参加了2017秋季不少的校招iOS岗位面试,下面我把这些面试题都贴出来和大家共勉: 一.搜狐快站 1.谈谈你做过的项目: 2.项目中最有成就感的部分: 3.倒计时如何实现?(NSTimer,还有其 ...
最新文章
- 启发下一代AI研究,《认知神经智能科学》专刊发布[附资料下载]
- uclibc和glibc的差别
- Linux学习:shell命令
- 动态规划矩阵连乘问题
- F1 Query: Declarative Querying at Scale
- 注解-@Conditional的使用
- IntelliJ Idea学习笔记003---【Intellij IDEA】eclipse项目导入
- 转件工程--实践者的研究方法阅读笔记1
- 新年新气象[xgluxv]
- Java Bean 与Spring Bean 的区别
- 阶段3 2.Spring_08.面向切面编程 AOP_3 spring基于XML的AOP-编写必要的代码
- nginx 1.8.0下载
- 国军标gjb150a振动冲击试验标准
- sonar8.9.1导出扫描结果pdf 实操
- python键值对是什么意思_python键值对
- 固件中的单个二进制模拟:Tenda AC15 路由器 CVE-2018-5767 / CVE-2020-10987 漏洞分析与复现
- 三个数差的平方公式推导过程_学懂因式分解 你只差这8个完全平方公式推导结论 立马见效...
- php类的开发语言,php是什么开发语言
- 我的世界java地狱更新_【我的世界】我得世界:1.16地狱大年夜更新_玩得好游戏攻略...
- Android之人脸识别
热门文章
- java 优雅退出_java – 优雅地退出应用程序?
- cmenu 隐藏子项中的一个子项_区分Maven中dependencyManagement与dependencies的作用
- CTF web题总结--http header 修改、cookie注入
- Java基础学习总结(12)——一哈希编码HashCode
- CSS 从入门到放弃系列:CSS的引入方式
- 前端学Markdown
- 2016年软考网络工程师考试命题范围变化之网络设备配置与复习技巧
- centos6.5下安装docker
- 学习quartz定时
- AndroidMainifest标签说明2——lt;activitygt;