iOS开发中,苹果公司提供了一种可视化的编程方式:即xib和storyboard,xib相对来说比较灵活,可以在纯代码的项目中使用,

也可以和storyboard配合使用,用法都差不多,下面来总结一下故事版的使用方法:

1,初始

选中viewcontrolller,在属性面板里勾选Is Initial View Controller,即可设置为其实场景,前面会有灰色的小箭头

2,将viewconroller的尺寸改成iPhone的大小

3,添加segue

使用segue的好处是,页面的千幻不在需要创建任何代码,按住ctrl键同事Tod's空间到目标场景,在弹出的上下文菜单中选择show

1)菜单中间4个是过去版本的使用方式,推荐最上面的4个新的方式:

Show:就是Push一个新的视图

Show Detail:替换当前的视图方式来展现新的视图

Modally:模式窗口的方式

Popover:浮窗形式

2)如果两个Controller之间建立包含关联,例如从TableBarController到NavigationController,则上下文菜单会有relationship的选项,选择viewcontroller即可。

4,给segue添加关联类

在storyboard中添加一个segue时并不会同步添加对应的类,如果需要,得手动添加!

5,添加关联代码

主要有两种关联类型,一种是outlet连接,就是在代码里面创建界面元素的成员变量引用,另一种是Action时间,把界面元素的相应时间方法添加到代码里来。

6,同一个storyboard里多个View Controller的引用

如果要在代码里调用storyboard里的View Controller,可以设置View Controller的identity。设置方法是,在stroyboard中选中View Controller,在右侧的identity属性面板里设置StroyboardID。
比如设置类Main.storyboard里初始View Controller的identity为RootView,则通过以下方式引用:

var rootViewController = UIStoryboard(name: "Main", bundle: nil)
.instantiateViewControllerWithIdentifier("RootView") as UIViewController

对于初始Viewcontroller也可以不通过identity直接换区:

var rootViewController = UIStoryboard(name: "Main", bundle: nil)
.instantiateInitialViewController() as UIViewController

7,使用多个storyboard文件

一个项目可以不止一个storyboard文件,他们之间也可以互相调用,假如还添加一个XXX.storyboard,里面的viewcontroller设置identity为secondView,则我们可以通过导航的方式来关联两个storyboard文件。

在AppDelegate的Application入口里把Main面板放入导航控制:

var rootViewController = UIStoryboard(name: "Main", bundle: nil)
.instantiateInitialViewController() as UIViewController
self.window!.rootViewController = UINavigationController(rootViewController: rootViewController)

然后可以在RootView里放入一个安润,点击事件里导航到想要去的页面:

var viewController = UIStoryboard(name: "Second", bundle: nil)
.instantiateViewControllerWithIdentifier("SecondView") as UIViewController
self.navigationController?.pushViewController(viewController, animated: true)

swift - storyboard(故事版)的使用的更多相关文章

  1. [Xcode 实际操作]九、实用进阶-(26)对Storyboard(故事版)中的文字标签(Label)进行本地化处理

    目录:[Swift]Xcode实际操作 对Storyboard(故事版)中的文字标签(Label)进行本地化处理. 点击项目名称[DemoApp]进入项目信息面板. [Build Setting]-& ...

  2. [Xcode 实际操作]九、实用进阶-(25)使用Storyboard(故事版)的约束功能,使项目快速适配各种分辨率的设备

    目录:[Swift]Xcode实际操作 本文将演示使用故事版的约束功能,使项目快速适配各种分辨率的设备. 在项目导航区打开并编辑主故事版[Main.storyboard]. 在当前故事版中,已经存在一 ...

  3. 解决问题的思路(如故事版里面有东西,却不见了)(swift里面开发比较多)

    解决问题的思路(如故事版里面有东西,却不见了) 正确效果图: 真机效果图: 内容:不见了 解决步骤:(重点讲解方法1) 1.把背景图隐藏了,如果能出现内容,说明背景图把内容遮住了.那怎么办呢,背景图是 ...

  4. 故事版(storyBoard)-lllegal configuration connection cannot have a prototype objct as

    今天下午做项目的时候.居然出了一个太不是问题的问题了,这个错误太低级了. lllegal configuration connection 'flagImg' cannot have a protot ...

  5. [Xcode 实际操作]九、实用进阶-(23)多个Storyboard故事板中的页面跳转

    目录:[Swift]Xcode实际操作 本文将演示多个Storyboard故事板中的页面跳转. 使用快捷键[Command]+[N]创建一个新的故事板文件. (在项目文件夹[DemoApp]上点击鼠标 ...

  6. iOS系列 基础篇 02 StoryBoard 故事板文件

    iOS基础 02 StoryBoard 故事板文件 目录: 1. 故事板的导航特点 2. 故事板中的Scene和Segue 3. 本文最后 在上篇HelloWorld工程中有一个Main.storyb ...

  7. iOS之Nib和Xib以及storyboard(故事版)

    本文转发至:http://blog.csdn.net/tonny_guan/article/details/8542789 nib.xib与故事板 如果大家使用过苹果的官方资料,一定会发现某些资料上会 ...

  8. Swift互用性: 使用Objective-C特性编写Swift类(Swift 2.0版)-b

    本节包括内容: 继承Objective-C的类(Inheriting from Objective-C Classes) 采用协议(Adopting Protocols) 编写构造器和析构器(Writ ...

  9. [Xcode 实际操作]九、实用进阶-(22)Storyboard故事板的常用布局结构

    目录:[Swift]Xcode实际操作 本文将演示如在使用故事板搭建项目时,常用的一种故事板布局结构. 在项目导航区,打开故事板文件[Main.storyboard] 当前故事板中只有一个视图控制器控 ...

随机推荐

  1. CSS:给 input 中 type="text" 设置CSS样式

    input[type="text"], input[type="password"] {    border: 1px solid #ccc;    paddi ...

  2. Entity Framework插入中文数据到MySQL乱码问题

    1.MYSQL: 保证所有的的列都是UTF8格式. 2.在连接MySQL的连接字符串中,加入配置文件信息:Character Set=utf8 

  3. C#: 数字经纬度和度分秒经纬度间的转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  4. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第10章节--SP2013中OAuth概览 应用程序验证

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 第10章节--SP2013中OAuth概览  应用程序验证 既然你懂得了什么是应用程序身份.而且知道怎样在SP中创建和设置 ...

  5. scikit-learn:4.2.3. Text feature extraction

    http://scikit-learn.org/stable/modules/feature_extraction.html 4.2节内容太多,因此将文本特征提取单独作为一块. 1.the bag o ...

  6. Spatial Transformer Network

    https://blog.csdn.net/yaoqi_isee/article/details/72784881 Abstract: 作者说明了CNN对于输入的数据缺乏空间变换不变形(lack of ...

  7. tp数据库操作

    1.常见的数据库操作//插入记录// $insert=Db::execute("insert into tp_user (username,password) values ('dome', ...

  8. Mysql 逻辑运算符详解

    逻辑运算符又称为布尔运算符,用来确认表达式的真和假.MySQL 支持4 种逻辑运算符,如表4-3 所示. 表4-3                          MySQL 中的逻辑运算符 运算符 ...

  9. hibernate 中集合的保存

    一.开发流程 1)引入jar包,注意引入数据库驱动包 2)创建数据库表 //创建用户表 CREATE TABLE USER( id INT PRIMARY KEY AUTO_INCREMENT, un ...

  10. html使用自我知识点总结

    1. 不要忘结束标签 <p>This is a paragraph <p>This is a paragraph 未来的HTML版本号不同意省略结束标签. 2. 没有内容的HT ...