我有一个 iPhone 应用程序,它具有不同的皮肤风格,具有不同的艺术资产和声音,但代码都是相同的。
我已经设置了多个目标,但我遇到的问题是我必须有一组不同的 UIBuilder nib 文件,每个目标每个视图一个,设置为指向该目标的正确艺术。
这有点令人沮丧,因为如果我对一个 nib 文件进行更改,我必须在所有其他 nib 文件中手动进行相同的更改、相同的连接等。我还为不同的皮肤添加了不同名称的所有资产,这样它们就不会在项目中发生冲突。所以,如果我有目标 A 和 B,我有a_main_menu.png
, b_main_menu.png
... a_FooViewController.xib
, b_FooViewController.xib
... 等等。
有没有办法制作一个指向具有相同名称的资产的 nib 文件,但它们位于......嗯,不同的捆绑包中?这就是捆绑包的用途吗?我可以想象在我的代码中修复这样的东西(可能在加载之前在笔尖中搜索并替换 A 为 B 甚至可能已经足够好了),虽然我还没有尝试过,但这很难看。
对于我的第一组应用程序来说,这是一个易于管理的策略(尽管远非最佳),但随着我的东西变得越来越复杂,让我的构建器文件保持同步变得非常困难,而且这不是一种非常干燥的工作方式。除了放弃 uibuilder 并在代码中创建我的视图之外,还有更好的方法吗?
如果这在 xcode/builder 级别上工作会很好,所以 builder 会尊重我当前的目标并在我工作时展示该目标的艺术......但我也许可以没有它,就像我可以选择运行时当前的一组艺术作品,我只能在 builder 中使用一组作品。我也可以使用一组笔尖,通过一个目标并在构建之前手动替换所有艺术作品,但这也不是很好。
最好的情况是,如果我可以混合使用这两种策略——例如,如果我有一个目标,它具有多个视图中的一个视图,而必须以不同的方式布局……但这是可选的。
我在问正确的问题吗?
谢谢!