博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS开发(九):场景
阅读量:4337 次
发布时间:2019-06-07

本文共 1527 字,大约阅读时间需要 5 分钟。

一、多场景故事板

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

你可能感兴趣的文章
POJ 3740 Easy Finding (DLX模板)
查看>>
MySQL 处理重复数据
查看>>
关于typedef的用法总结(转)
查看>>
【strtok()】——分割字符串
查看>>
Linux下安装rabbitmq
查看>>
曹德旺
查看>>
【转】判断点在多边形内(matlab)
查看>>
java基础之集合:List Set Map的概述以及使用场景
查看>>
Python 线程 进程 协程
查看>>
iOS语言中的KVO机制
查看>>
excel第一次打开报错 向程序发送命令时出错 多种解决办法含终极解决方法
查看>>
响应式web设计之CSS3 Media Queries
查看>>
实验三
查看>>
机器码和字节码
查看>>
环形菜单的实现
查看>>
【解决Chrome浏览器和IE浏览器上传附件兼容的问题 -- Chrome关闭flash后,uploadify插件不可用的解决办法】...
查看>>
34 帧动画
查看>>
二次剩余及欧拉准则
查看>>
thymeleaf 自定义标签
查看>>
关于WordCount的作业
查看>>