菜鸟教程小白 发表于 2022-12-11 20:53:07

ios - iOS框架或依赖项目中的UIViewController XIB


                                            <p><p>我知道这类问题以前曾被讨论过,但我还没有找到一个明确的答案来解决我目前面临的问题。这就是<strong>在一个库中,如何最好地提供一个具有复杂 View 的 <code>UIViewController</code> 子类</strong>?</p>

<p>我能看到的方法有:</p>

<ol>
<li><p>同时发布 XIB 并要求您的代码的用户将其添加到他们的项目中。我认为这是不可取的,因为它使维护成为一场噩梦。如果将 ViewController 添加到库项目中,则必须将新的 XIB 添加到每个使用该库的项目中。</p></li>
<li><p>在 <code>loadView</code>/<code>viewDidLoad</code> 中创建您的 View ,并在其中手动完成所有操作。尽管对于复杂的 View 层次结构,这可能非常复杂。</p></li>
<li><p>以某种方式在编译时从您的 XIB 生成您的 <code>loadView</code> 代码。不过,要获得可以正确执行此操作的东西听起来很复杂。</p></li>
</ol>

<p>我不太明白 Apple 是如何做到的。以 <code>MessageUI</code> 框架为例,有 <code>MFMailComposeViewController</code> 这是一个相当复杂的 View ,但它没有 XIB(或者至少我不知道 - 也许实际上有是?)。我很想知道 Apple 是如何做到的——有人知道吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>他们从头开始手动编写所有代码,在我看来,这是最好的选择。有时 InterfaceBuilder 可以通过应用未知/错误记录的设置等来真正劫持您的项目,而且代码的可移植性较差。例如,具有非官方 Linux 工具链的人可能无法在没有 Interface Builder 的情况下使用该库。代码必须由开发人员编写,能够使用适当但极简的工具链(编译器+汇编器+链接器)进行编译,而不依赖于任何不严格属于自己的编程部分的 IDE、SDK 或其他技术项目。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - iOS框架或依赖项目中的UIViewController XIB,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/8764336/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/8764336/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - iOS框架或依赖项目中的UIViewController XIB