我不会在家里这样做,但我在工作。 (即,“你不应该这样做”的反应不会被洗掉。)
我继承了一个包含两个目标的项目,每个目标都有自己的故事板。目标共享完全相同的代码。第二个目标的故事板是从第一个目标克隆的。它的差异很小:主要是不同的背景图像。 所有出口在代码中与相同的 ivar一样,与第一个故事板中的相应出口一样。 (AFAIK)
现在,第一个天真的步骤是仅告诉第二个目标使用第一个目标的主要故事板。这种情况发生在目标>一般>部署信息(或者在应用程序的plist文件中,黑客。)在Copy Bundle Resources构建阶段复制相应的故事板 。
然而,当应用程序运行时,在启动屏幕消失之前(即加载主视图),我们崩溃了NSUnknownKeyException。对于两个故事板中似乎正确连接的插座。 (当然是相同的ivar。)
现在,期待这种方法能够立即发挥作用。显然,我必须在每个目标的基础上处理那些不同的背景图像。但我没有看到任何基本理念不应该是可行的根本原因。欢迎提出如何进行的建议。 (参考星际迷航剧集“Spock的大脑”将是第一次有趣。)
答案 0 :(得分:0)
我已经做到了,它确实有效。如果您有一个重新设计的应用程序或一个应用程序之间存在细微差别的应用程序,以及包含应用程序价格的所有购买的其他版本,则这不是一种不合理的方法。
听起来你的问题还有更多的东西。您是否曾尝试在initWithCoder上打破应该拥有该插座的类并验证您是否已进入该类?第二个目标是否有可能具有相同名称但不同出口的不同类别以及用于构建的类别或类似内容?
另外,如果您在项目中有其他代码的故事板,您是否确保文件定位在两者上是正确的,那么如果它们的名称相同,那么真正包含了正确的故事板吗?同样,对于具有相同类名的两个项目中的任何文件。
我一直回到文件定位这个...感觉某些东西可能在某处,所以你认为实际使用的是不是。
我刚刚在这里尝试了一个新项目,两个目标,从第二个目录中删除了除info.plist之外的所有内容,将第一个目标中的所有文件定位到第二个目标并且工作正常 - 出口按预期连接