swift - storyboard(故事版)的使用
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的引用
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(故事版)的使用的更多相关文章
- [Xcode 实际操作]九、实用进阶-(26)对Storyboard(故事版)中的文字标签(Label)进行本地化处理
目录:[Swift]Xcode实际操作 对Storyboard(故事版)中的文字标签(Label)进行本地化处理. 点击项目名称[DemoApp]进入项目信息面板. [Build Setting]-& ...
- [Xcode 实际操作]九、实用进阶-(25)使用Storyboard(故事版)的约束功能,使项目快速适配各种分辨率的设备
目录:[Swift]Xcode实际操作 本文将演示使用故事版的约束功能,使项目快速适配各种分辨率的设备. 在项目导航区打开并编辑主故事版[Main.storyboard]. 在当前故事版中,已经存在一 ...
- 解决问题的思路(如故事版里面有东西,却不见了)(swift里面开发比较多)
解决问题的思路(如故事版里面有东西,却不见了) 正确效果图: 真机效果图: 内容:不见了 解决步骤:(重点讲解方法1) 1.把背景图隐藏了,如果能出现内容,说明背景图把内容遮住了.那怎么办呢,背景图是 ...
- 故事版(storyBoard)-lllegal configuration connection cannot have a prototype objct as
今天下午做项目的时候.居然出了一个太不是问题的问题了,这个错误太低级了. lllegal configuration connection 'flagImg' cannot have a protot ...
- [Xcode 实际操作]九、实用进阶-(23)多个Storyboard故事板中的页面跳转
目录:[Swift]Xcode实际操作 本文将演示多个Storyboard故事板中的页面跳转. 使用快捷键[Command]+[N]创建一个新的故事板文件. (在项目文件夹[DemoApp]上点击鼠标 ...
- iOS系列 基础篇 02 StoryBoard 故事板文件
iOS基础 02 StoryBoard 故事板文件 目录: 1. 故事板的导航特点 2. 故事板中的Scene和Segue 3. 本文最后 在上篇HelloWorld工程中有一个Main.storyb ...
- iOS之Nib和Xib以及storyboard(故事版)
本文转发至:http://blog.csdn.net/tonny_guan/article/details/8542789 nib.xib与故事板 如果大家使用过苹果的官方资料,一定会发现某些资料上会 ...
- Swift互用性: 使用Objective-C特性编写Swift类(Swift 2.0版)-b
本节包括内容: 继承Objective-C的类(Inheriting from Objective-C Classes) 采用协议(Adopting Protocols) 编写构造器和析构器(Writ ...
- [Xcode 实际操作]九、实用进阶-(22)Storyboard故事板的常用布局结构
目录:[Swift]Xcode实际操作 本文将演示如在使用故事板搭建项目时,常用的一种故事板布局结构. 在项目导航区,打开故事板文件[Main.storyboard] 当前故事板中只有一个视图控制器控 ...
随机推荐
- linux 查看 内存条具体信息, 几根内存条 命令
sudo dmidecode | grep -A16 "Memory Device$" 需要root 权限.. [life@localhost mp3blaster-3.2.5]$ ...
- AI:人工智能搜索策略
人工智能搜索策略:
- 卓有成效的团队建设经验与见解 Team Leader你会带团队吗?
http://www.nowamagic.net/librarys/veda/detail/1955前言 这篇文章是写给Team Leader和往这个方向前进的人.也适合一般的程序员,对你们在团队合作 ...
- Redis总结(五)缓存雪崩和缓存穿透等问题(转载)
前面讲过一些redis 缓存的使用和数据持久化.感兴趣的朋友可以看看之前的文章,http://www.cnblogs.com/zhangweizhong/category/771056.html .今 ...
- 破解Aspose 操作pdf word等文档 对10以下版本有效
using System; using System.IO; namespace LicenseHelper { public static class License { public const ...
- 请介绍WCF服务
WCF本质上提供一个跨进程.跨机器以致跨网络的服务调用 WCF合并了Web服务..net Remoting.消息队列和Enterprise Services的功能并集成在Visual Studio中, ...
- 数据库连接 UnicodeEncodeError: 'latin-1' codec can't encode character u'\u4eac' in position 0: ordinal not in range(256),UnicodeEncodeError: 'latin-1' codec can't encode character
处理方法就是,设置连接和游标的charset为你所希望的编码,如utf8, 连接数据库的时候加上 charset="utf8 db = MySQLdb.connect(host= '14 ...
- Mybatis(六):spring与mybatis三种整合方法
1.采用MapperScannerConfigurer,它将会查找类路径下的映射器并自动将它们创建成MapperFactoryBean. spring-mybatis.xml: <?xml ve ...
- mysql多实例安装详解
首先说明一个场景:我的电脑是ubuntu系统,之前apt-get自动安装过mysql.这也是出现错误最多的原因之一. 安装过程,其中充斥着各种错误: 6.mkdir mysql 7.groupadd ...
- Linux 内存中的Cache,真的能被回收么?
您真的了解Linux的free命令么? 在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: 这里的默认显示单位是k ...