Storyboard Reference

在某些情况下,你开发的应用可能包含有各种各样的复杂界面,如果你使用Storyboard来管理这些界面,通常你会将这些界面按照相应的逻辑分成许多子模块,放在不同的storyboard里,比如注册相关的放到Register.Storyboard,图片相关的放到Photos.Storyboard,而主界面放到Main.Storbyoard。这么做的好处是不仅可以缩小每个storbyoard的打开速度,而且可以增强维护性,使界面逻辑更加清晰。

通常建议能在Storyboard里做的尽量在Storyboard里做,减少相应的代码量。在iOS9以前,Storyboard之间的通信(Segue)只能依靠代码来实现。

比如我们想在Main.Storyboard里引用Login.Storyboard:

let loginStoryboard = UIStoryboard(name: "Login", bundle: nil) //Login为相应Storyboard的名字,不需要后缀名。
let loginViewController = loginStoryboard.instantiateViewControllerWithIdentifier("LoginInterface")// 根据storyboard里声明的StoryboardID获取该storyboard里的ViewController

首先我们通过给UIStoryboard构造方法传入需要引用的Storyboard文件名称(这里为Login),然后在得到的loginStoryboard调用instantiateViewControllerWithIdentifier方法得到相应的ViewController。

好消息是,在Xcode7中引入了Storyboard Reference(故事版引用),可以用来替代上面的代码。

//Xcode7 pre-release正在下载中,下载完成后上传截图。

参考视频:What‘s new in Storyboards

时间: 2024-11-05 13:50:07

Storyboard Reference的相关文章

swift项目第五天:swift中storyBoard Reference搭建主界面

一:StoryBoard Reference的介绍 StoryBoard Reference是Xcode7,iOS9出现的新功能 目的是让我们可以更好的使用storyboard来开发项目 在之前的开发中,如果使用一个storyboard开发,那么非常容易造成代码冲突 可以通过使用storyboard创建控制器的方式解决. 官方目前推出了StoryBoard Reference的方式 优点: 允许你从 segue 中引用其他 storyboard 中的 viewController 可以将不同模块

iOS9 : Storyboard References

你曾经是否使用 interface builder 创建过一个复杂.界面非常多的应用,你就会明白最后那些Storyboards 文件变的有多大.这也是我至今不喜欢在大项目里使用Storyboards的原因,他会迅速变的无法管理,阻碍你的进度.自从引入 Storyboard 以来,其实是可以把你的应用的不同模块切开到不同的 Storyboard 中的.在过去,这要手动创建多个 Storyboard 文件,并且要写大量的代码. 为了解决这个问题,在 iOS 9 中苹果介绍了 Storyboard R

iOS之Storyboard References

如果你曾经使用 interface builder 创建过一个复杂.界面非常多的应用,你就会明白最后那些Storyboards 文件变的有多大.他会迅速变的无法管理,阻碍你的进度.自从引入 Storyboard 以来,其实是可以把你的应用的不同模块切开到不同的 Storyboard 中的.在过去,这要手动创建多个 Storyboard 文件,并且要写大量的代码. 为了解决这个问题,在 iOS 9 中苹果介绍了 Storyboard References 这个概念.Storyboard Refer

IOS入门之StoryBoard

概述 在iOS的发展历程中,IOS开发经历了三种主要流派:使用代码手写UI及布局:使用单个xib文件组织viewController或者view:使用StoryBoard来通过单个或很少的几个文件构建全部UI.而在最近几年的开发中,苹果对 Storyboard 的开发力度也不断增强,添加了更多功能和特性,大大方便了界面的开发.适配以及提升代码性能. 我们来看看三种方式的主要区别: 手写页面和逻辑代码 如果你的目的是写一些可以高度重用的控件提供给其他开发者使用,那毫无疑问最好的选择应该是使用代码来

Swift: 是用Custom Segue还是用Transition动画

用一个很简单的场景做为例子:在storyboard上,你有用UINavigationController串起来两个UIViewController.这两个controller之间要互相跳转,A->B, B->A.跳转的时候默认的那个push来push去的效果你觉得很傻X,所以想换一个效果.比如,不那么二的fade in/out效果. 很多的例子会说写一个cusom的UIStoryboardSegue,然后在这个里面写一个UIView.animationWithDuration来实现这个效果.千

WWDC 2015 - 概记

WWDC 2015已经过去快一个月了,今年似乎没有像去年那样变化巨大,一切都在慢慢演进,iOS.Mac OS.watchOS都变得越来越好. 新的三大平台的发布,iOS 9/Mac OS EL Capitan/watchOS 2 Apple提供了三种方式可以帮助减少App的大小 1. App Slicing: 以前的App里面会包含很多内容,比如32位/64位的二进制编译文件,@1x/@2x/@3x的图片资源文件,这样会导致程序变得越来越大.Apple通过App Slicing可以根据设备的情况

ios-深度解析二维码的生成与使用

利用一个小demo来对二维码进行学习,总共四个界面(主界面,生成二维码界面,识别二维码界面,扫描二维码界面) 一.二维码的介绍 1.什么是二维码? 二维条码/二维码是用某种特定的几何图形按一定规律在平面分布的黑白相间的图形记录数据符号信息的 总结: 用图形记录标记一些信息,方便通过图形识别来获取信息 2 应用场景 信息获取(名片.地图.WIFI密码.资料) 手机电商(用户扫码.手机直接购物下单) 手机支付(扫描商品二维码,通过银行或第三方支付提供的手机端通道完成支付) 微信添加好友 二.二维码界

iOS9编程GOGOGO:XCode7新变化

做一个关于栈视图 UIStackView的Demo,先看看XCode7的变化 关于StoryBoard: 启动画面由xib变为Storyboard StoryBoard引用: 如今能够在一个StoryBoard中加入对另外一个StoryBoard的引用,在多个SB中进行切换不用再写代码了.如图: 曾经的方式(SWIFT): override func viewDidLoad() { super.viewDidLoad() var sb : UIStoryboard let del = UIApp

iOS成长之路

iOS9开始的新特性 nonnull\__nonnull nullable\__nonnullable null_resettable NS_ASSUME_NONNULL_BEGIN \ NS_ASSUME_NONNULL_END 泛型\__contravariant\__covariant __kindof UIWindow(使用方法已经跟之前不一样,一定要加控制器) Storyboard Reference UIStackView Search API 3D touch  新技术的了解渠道