3

我已经阅读了很多关于使用 Xcode 创建精简版和付费版本的信息,并且在我的应用程序中,我正在使用多个目标和预处理器宏,如Stackoverflow 帖子中所述。但是,我不知道如何使用Storyboard处理不同的目标。

例如,在我的故事板中,我有一个带有静态单元格的表格视图控制器。在付费版本中它有四个单元格,在精简版中有一个额外的单元格,而故事板的其余部分保持不变。有没有办法实现这种行为?

(为精简版创建一个新的故事板(或复制它)对我来说不是一个选择,因为我有几十个视图控制器,并且 98% 的视图和 UI 元素在两个版本中都是相同的。这会使项目难以维护.)

4

1 回答 1

2

例如,在我的故事板中,我有一个带有静态单元格的表格视图控制器。在付费版本中它有四个单元格,在精简版中有一个额外的单元格,而故事板的其余部分保持不变。有没有办法实现这种行为?

如果您没有使用静态表来限制自己,那么这个问题一开始就不会出现;您将在代码中配置表格,这可能是有条件的——问题结束。

就目前情况而言,故事板中需要两个不同的场景,一个用于付费版,另一个用于精简版。然后:

  • 如果这个场景是由一个转场到达的,你需要两个不同的转场来到达这个场景,你将在代码中决定触发哪一个(并在代码中触发它,而不是自动触发)。

  • 如果这个场景是初始视图控制器,您需要在代码中初始化它,而不是让 UIApplicationMain 为您执行此操作。或者,在这种情况下,只为这个场景使用两个不同的故事板,然后转到另一个故事板。

(请记住,在任何情况下,多个故事板都是组织场景的好方法。我并不一定是指多个替代故事板;多个连续故事板可以防止您的故事板变得过于复杂。从您的问题中听起来好像你需要做的就是了解故事板是如何工作的——它们不是魔法,你知道——并且在使用它们时更加灵活。你整个头灯都害怕复制你的故事板——“我有几十个视图控制器” - 表明您已经在错误的道路上走得太远了。编程就像解决魔方:如果您正处于其中,并且您对尝试更改某些内容的人的反应是“不要触摸它!”,你做错了。)

于 2014-09-30T16:25:05.940 回答