切开让您轻松创建关联到其他Storyboard文件中的视图控制器的segues,帮助您保持Storyboard的整洁和专注。项目的目标包括
embed
segues)。即使是中等复杂的应用,也很快会很明显,使用一个单一的故事板文件很快会变得难以管理。作为一个解决方案,我们可以有多个故事板,并手动实例化视图控制器,而且不需要编写代码来执行转换也是相当不错的。
两全其美的办法是拥有可以跨故事板边界切换的segues。Xcode 7(在2015年WWDC上宣布)允许这样做,但看起来这个功能很可能会限制在iOS 9上。切开允许您从同一功能中受益,同时仍然支持运行iOS 7+的设备。
切开并不是100%面向未来(它在UIStoryboard
类中使用方法交换),但切开尽可能以最不侵入的方式完成工作。一旦您准备完全迁移到iOS 9,您只需要用原生Storyboard引用替换占位符视图控制器,并重新连接您的segues。
第一步是按需将Storyboard拆分成更小、以功能为中心的Storyboard。然后,每当您需要将segue链接到另一个Storyboard时,您将执行以下操作
_
)。UIViewController
子类,并为它添加任何内容(具有至少一个描述所链接位置的标签非常有用)。将您的segue(s)链接到该视图控制器。cutaway_StoryboardNameWithoutExtension_DestinationViewControllerID
(cutaway
前缀可以通过调用[UIStoryboard cutaway_setIdentifierPrefix:]
来更改)。这样就完成了!在执行转场(segue)时,Cutaway会自动实例化目标视图控制器并透明地提供。你可以像往常一样使用prepareForSegueWithIdentifier:sender:
来处理这个转场。
您可以通过运行以下命令尝试示例项目:
pod try Cutaway
或者您可以克隆库,并首先从示例目录运行pod install
。
Cutaway通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中
pod "Cutaway"
您也可以通过将以下文件添加到项目中手动安装它
UIStoryboard+Cutaway.h
UIStoryboard+Cutaway.m
Fabio Rodella, [email protected]
Cutaway可在MIT许可下使用。更多详情请参阅LICENSE文件。