我知道这类问题以前曾被讨论过,但我还没有找到一个明确的答案来解决我目前面临的问题。这就是在一个库中,如何最好地提供一个具有复杂 View 的 UIViewController 子类?
我能看到的方法有:
同时发布 XIB 并要求您的代码的用户将其添加到他们的项目中。我认为这是不可取的,因为它使维护成为一场噩梦。如果将 View Controller 添加到库项目中,则必须将新的 XIB 添加到每个使用该库的项目中。
在 loadView /viewDidLoad 中创建您的 View ,并在其中手动完成所有操作。尽管对于复杂的 View 层次结构,这可能非常复杂。
以某种方式在编译时从您的 XIB 生成您的 loadView 代码。不过,要获得可以正确执行此操作的东西听起来很复杂。
我不太明白 Apple 是如何做到的。以 MessageUI 框架为例,有 MFMailComposeViewController 这是一个相当复杂的 View ,但它没有 XIB(或者至少我不知道 - 也许实际上有是?)。我很想知道 Apple 是如何做到的——有人知道吗?
Best Answer-推荐答案 strong>
他们从头开始手动编写所有代码,在我看来,这是最好的选择。有时 InterfaceBuilder 可以通过应用未知/错误记录的设置等来真正劫持您的项目,而且代码的可移植性较差。例如,具有非官方 Linux 工具链的人可能无法在没有 Interface Builder 的情况下使用该库。代码必须由开发人员编写,能够使用适当但极简的工具链(编译器+汇编器+链接器)进行编译,而不依赖于任何不严格属于自己的编程部分的 IDE、SDK 或其他技术项目。
关于ios - iOS框架或依赖项目中的UIViewController XIB,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/8764336/
|