在某些情况下,你开发的应用可能包含有各种各样的复杂界面,如果你使用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