故事板(UIStoryboard)可以很方便的进行界面的设计,下面总结了常用的几个操作方法:

1,初始场景
选中View Controller,在属性面板里勾选Is Initial View Controller复选框,即可设置为起始场景(前面会显示灰色的小箭头)
 
2,将View Controller的尺寸改成iPhone大小
(1)点击左侧的Main.storyboard。然后选择右侧的 show the File inspector(纸张图标),最后将Use Size Classes前面的勾去掉。
(2)在弹出的窗口中,选择iPhone为Keep size class data 的值。然后点击Disable Size Class按钮即可。
(3)此时Xcode中间的布局样式看上去就像个iPhone的样子了。
 
3,添加segue
使用seque的好处是,页面的切换不再需要创建任何代码。按住Ctrl键同时拖动控件到目标场景,在弹出的上下文菜单中选择show。
(1)菜单中中间4个是过去版本的使用方式,推荐最上面的4个新的方式:
    Show:就是Push一个新的视图
    Show Detail:替换当前的视图方式来展现新的视图
    Modally:模式窗口的方式
    Popover:浮窗形式
(2)如果是两个Controller之间建立包含关联,例如从TableBarController到NavigationController,则上下文菜单会有relationship的选项,选择view controllers即可
 
4,给segue添加关联类
在stroyboard中添加一个seque时并不会同步添加对应的类。如果需要,我们要手动先创建一个swift类,比如叫MyView1。然后进入storyboard,选中对应的segue。在属性面板中设置对应的Class,如下图:
  
5,添加代码关联
打开Assistant Editor同时显示界面设计与代码,按住Ctrl键同时拖动控件到代码,在弹出的上下文菜单中设置需要关联的类型,即可在代码里自动生成代码。
这里主要有两种关联类型,一种是Outlet连接,就是在代码里创建界面元素的成员变量引用。另一种是Action事件,把界面元素的响应事件方法添加到代码里来。(如果已经创建了代码,也可以把控件直接拖放到对应代码上,这时候就不是插入而是直接建立连接了)
6,同一个storyboard里多个View Controller的引用
如果要在代码里调用storyboard里的View Controller,可以设置View
Controller的identity。设置方法是,在stroyboard中选中View
Controller,在右侧的identity属性面板里设置StroyboardID。
比如设置类Main.storyboard里初始View Controller的identity为RootView,则通过以下方式引用:
1
2
var rootViewController = UIStoryboard(name: "Main", bundle: nil)
            .instantiateViewControllerWithIdentifier("RootView") as UIViewController

对于初始View Controller也可以不通过identity直接获取:

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

7,使用多个storyboard文件

一个项目可以不止一个storyboard文件,它们间也可以互相调用。假如还添加一个Second.storyboard,里面的View
Controller设置identity为SecondView,则我们可以通过导航的方式来关联两个storyboard文件。
在AppDelegate的Application入口里把Main面板放入导航控制:
1
2
3
var rootViewController = UIStoryboard(name: "Main", bundle: nil)
            .instantiateInitialViewController() as UIViewController
self.window!.rootViewController = UINavigationController(rootViewController: rootViewController)

然后可以在RootView里放入一个按钮,点击事件里导航到Second面板:

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

Swift - 故事板storyboard的用法的更多相关文章

  1. 故事板(Storyboard)

    1 使用Storyboard完成各项常见功能 1.1 问题 故事板Storyboard是IOS5开始引入的一个新的系统,将多个视图文件(类似xib文件)集中到一个单独的可视化工作区间,负责创建和管理所 ...

  2. 【编程技巧】 iOS 5的StoryBoard(故事板)的一些用法

    从StroyBoard得到一个View UIViewController *viewController = [[UIStoryboard storyboardWithName:@"Main ...

  3. 故事板(Storyboard) 、 iPad编程 、 App和VC的生命周期

    1 创建动态TableView 1.1 问题 动态表视图就是显示多少分区,多少行以及每一行的显示内容都是根据数据源来决定.之前我们学过用xib展示动态表视图,本案例将学习如何使用Storyboard展 ...

  4. iOS 5 故事板进阶(1)

    译自<iOS 5 by tutorials> 在上一章,你已经学习了故事板的基本用法.包括如何向故事板中添加 View Controller,通过 segues 切换 View Contr ...

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

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

  6. [Swift实际操作]八、实用进阶-(8)使用performSegue在故事板页面之间进行数据传递

    本文将演示故事板页面之间的数据传递.首先在一个空白项目中,打开项目自带的故事板文件(Main.storyboard).故事板中已经拥有了一个视图控制器,点击选择该视图控制器.然后依此点击[Editor ...

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

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

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

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

  9. [Swift通天遁地]五、高级扩展-(12)扩展故事板中的元件添加本地化功能

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

随机推荐

  1. c语言中float、double、long double在内存中存储方式

    存储格式中的二机制转为浮点数: 浮点型变量在计算机内存中占用4个字节(4 Byte),即32-bit,一个浮点数由2部分组成:底数m  和 指数e: 底数部分:使用2进制数来表示此浮点数的实际值: 指 ...

  2. ZOJ3768 夹逼查找【STL__lower_bound()_的应用】

    首先学习一下lower_bound() 函数lower_bound()在first和last中的前闭后开区间进行二分查找,返回大于或等于val的第一个元素位置.如果所有元素都小于val,则返回last ...

  3. Qt 内存管理机制

    这篇文章首先发布于我的主页 http://www.devbean.info,以后也会直接发布在那里.现在有 Flex 4 的一篇和 <从 C++ 到 Objective-C>系列,感谢大家 ...

  4. m2eclipse简单使用,创建Maven项目 ,运行mvn命令(转)

    前面介绍了如何安装m2eclipse,现在,我们使用m2ecilpse导入Hello World项目. 选择菜单项File,然后选择Import,我们会看到一个Import对话框,在该对话框中选择Ge ...

  5. OPENSSL库的使用-DES篇

    一.单DES算法ECB模式加解密 1.使用函数DES_set_key_unchecked设置密钥 2.使用函数DES_ecb_encrypt来进行数据加解密 void DES_ecb_encrypt( ...

  6. WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘

    原文:WCF技术剖析之四:基于IIS的WCF服务寄宿(Hosting)实现揭秘 通过<再谈IIS与ASP.NET管道>的介绍,相信读者已经对IIS和ASP.NET的请求处理管道有了一个大致 ...

  7. SpringMVC 返回字符串

    今天看到一段代码,关于SpringMVC的Controller中返回字符串的代码,这段代码被我称为2b代码(英文名:2b Code). @RequestMapping(value="twoB ...

  8. 【Lucene】近实时搜索

    近实时搜索:可以使用一个打开的IndexWriter快速搜索索引的变更内容,而不必首先关闭writer,或者向该writer提交:这是2.9版本之后推出的新功能. 代码示例(本例参考<Lucen ...

  9. 解决java mail发送TXT附件被直接显示在正文中的问题

    这两天遇到一个问题,关于使用java mail发送邮件的问题. 详细是这样子的:我使用java mail发送异常报告邮件,邮件中有一个包含异常日志的附件,和关于设备信息的邮件正文.假设日志为log后缀 ...

  10. password学3——Java BASE64加密解密

    Base64是网络上最常见的用于传输8Bit字节代码的编码方式之中的一个,大家能够查看RFC2045-RFC2049.上面有MIME的具体规范.Base64编码可用于在HTTP环境下传递较长的标识信息 ...