我知道这个问题之前已经被解开了,但我还没有找到我现在面对的问题的一个明确答案。这是在库中,如何最好地发布具有复杂视图的UIViewController
子类?
我能看到的方法是:
同时发送XIB并要求您的代码用户将其添加到他们的项目中。在我看来,这是不可取的,因为它使维护成为一场噩梦。如果将视图控制器添加到库项目中,则必须将新的XIB添加到使用该库的每个项目中。
在loadView
/ viewDidLoad
中创建您的视图,并在那里手动完成所有操作。对于复杂的视图层次结构,这可能非常复杂。
以某种方式在编译时从您的XIB生成loadView
代码。听起来很复杂,可以做到这一点。
我不太明白Apple是如何做到的。以MessageUI
框架为例,有MFMailComposeViewController
这是一个相当复杂的视图,但它没有XIB(或者至少不是我知道的 - 也许实际上是?)。我有兴趣知道Apple是如何做到的 - 有人知道吗?
答案 0 :(得分:2)
他们从头开始手动编码,在我看来,这是最好的选择。有时InterfaceBuilder可以通过应用未知/错误记录的设置等来真正劫持您的项目,而且代码的可移植性较差。例如,如果没有Interface Builder,那么使用非官方工具链的Linux可能无法使用该库。代码必须由开发人员编写,能够使用适当但简约的工具链(编译器+汇编器+链接器)进行编译,而不依赖于任何IDE,SDK或其他不严格属于某人的编程部分的技术。项目