【发布时间】:2010-10-07 00:49:49
【问题描述】:
我有一个 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 中的一组作品。我也可以使用一组笔尖,通过一个目标并在构建之前手动替换所有艺术作品,但这也不是很好。
如果我可以混合使用这两种策略,最好的办法就是——例如,如果我有一个目标具有多个视图中的一个视图,但必须以不同的方式布局...但这是可选的。
我问的问题对吗?
谢谢!
【问题讨论】:
标签: iphone cocoa-touch xcode interface-builder target