切开 0.1.1

切开 0.1.1

测试已测试
语言语言 Obj-CObjective C
许可证 MIT
发布最新发布2015年6月

Fabio Rodella维护。



切开 0.1.1

  • Fabio Rodella

切开让您轻松创建关联到其他Storyboard文件中的视图控制器的segues,帮助您保持Storyboard的整洁和专注。项目的目标包括

  • Storyboard是真相的来源:所有关于segue目的地的信息都包含在Storyboard文件本身中。
  • 没有segue子类:任何类型的segue都可以链接到另一个Storyboard(包括不能子类的embed segues)。
  • 没有子视图控制器:您在segue中得到的视图控制器正是您期望的,不被任何容器封装。
  • 透明地支持unwind segues.

动力

即使是中等复杂的应用,也很快会很明显,使用一个单一的故事板文件很快会变得难以管理。作为一个解决方案,我们可以有多个故事板,并手动实例化视图控制器,而且不需要编写代码来执行转换也是相当不错的。

两全其美的办法是拥有可以跨故事板边界切换的segues。Xcode 7(在2015年WWDC上宣布)允许这样做,但看起来这个功能很可能会限制在iOS 9上。切开允许您从同一功能中受益,同时仍然支持运行iOS 7+的设备。

切开并不是100%面向未来(它在UIStoryboard类中使用方法交换),但切开尽可能以最不侵入的方式完成工作。一旦您准备完全迁移到iOS 9,您只需要用原生Storyboard引用替换占位符视图控制器,并重新连接您的segues。

使用

第一步是按需将Storyboard拆分成更小、以功能为中心的Storyboard。然后,每当您需要将segue链接到另一个Storyboard时,您将执行以下操作

  • 确保您的目标场景有一个有意义的Storyboard ID。此外,不要在标识符中使用下划线符号(_)。

Storyboard screenshot

  • 在源Storyboard中创建一个占位符视图控制器。您可以使用任何UIViewController子类,并为它添加任何内容(具有至少一个描述所链接位置的标签非常有用)。将您的segue(s)链接到该视图控制器。

Storyboard screenshot

  • 以下格式为您在占位符视图控制器中添加Storyboard ID:cutaway_StoryboardNameWithoutExtension_DestinationViewControllerIDcutaway前缀可以通过调用[UIStoryboard cutaway_setIdentifierPrefix:]来更改)。

Storyboard screenshot

这样就完成了!在执行转场(segue)时,Cutaway会自动实例化目标视图控制器并透明地提供。你可以像往常一样使用prepareForSegueWithIdentifier:sender:来处理这个转场。

您可以通过运行以下命令尝试示例项目:

pod try Cutaway

或者您可以克隆库,并首先从示例目录运行pod install

需求

  • iOS 7.0+
  • ARC

安装

Cutaway通过CocoaPods提供。要安装它,只需将以下行添加到您的Podfile中

pod "Cutaway"

您也可以通过将以下文件添加到项目中手动安装它

  • UIStoryboard+Cutaway.h
  • UIStoryboard+Cutaway.m

作者

Fabio Rodella, [email protected]

许可

Cutaway可在MIT许可下使用。更多详情请参阅LICENSE文件。