根据目标显示/隐藏故事板中的UI元素

时间:2014-09-30 16:15:58

标签: ios xcode storyboard targets

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

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

(为Lite版本创建一个新的故事板(或复制它)不是我的选择,因为我有几十个视图控制器,98%的视图和UI元素在两个版本中是相同的。它将使项目难以维持。)

1 个答案:

答案 0 :(得分:1)

  

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

如果你没有使用静态表格来装箱,那么首先就不会出现这个问题;您将在代码中配置表,这可能是有条件的 - 问题结束。

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

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

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

(并且请记住,在任何情况下,多个故事板都是组织场景的好方法。我不一定是指多个替代故事板;多个顺序故事板可以防止你的故事板变得过于复杂。从你的问题中我听起来好像你需要做的就是理解故事板是如何工作的 - 它们不是魔术,你知道 - 并且更灵活地使用它们。鹿在头灯里害怕复制你的故事板 - “我有几十个视角控制器” - 暗示你已经走错了道路。编程就像解决魔方:如果你在在它的中间以及你对试图改变某事的人的反应是“不要碰它!”,你做错了。)