【问题标题】:Why does Apple recommends to create modal navigation controllers programmatically?为什么 Apple 建议以编程方式创建模态导航控制器?
【发布时间】:2011-04-14 08:32:21
【问题描述】:

“当以模态方式呈现导航控制器时,以编程方式创建和配置导航控制器对象通常更简单。虽然您也可以使用 Interface Builder 来执行此操作,但通常不建议这样做。” 事实上,因为我的导航控制器很简单,我宁愿在 IB 中自定义视图!

【问题讨论】:

    标签: iphone objective-c interface-builder uinavigationcontroller modalviewcontroller


    【解决方案1】:

    虽然我不知道确切的原因,但这是我的尝试:

    以编程方式创建控制器时,您只需要几行代码,事实上,在大多数情况下,这可能真的很少:创建、设置根控制器、呈现和释放。替代方案很快就可以列举出来:

    • 您可以将视图控制器作为底层控制器中的插座。然而,它会一直驻留在内存中。不仅会浪费内存,而且在不需要时也没有太大意义。
    • 您可以将该控制器实例化为一个 nib 文件。然而,然后,你将不得不做很多你会做的事情:
      • 使用 alloc,init 在代码中创建控制器
      • 设置一些属性 - 在自定义类、nib 或几行代码中
      • 展示它
      • 释放它

    现在,考虑到替代方法只是设置几行代码,加载 nib 文件的开销实际上并不便宜,并不值得额外的舒适。如果您正在进行大量设置,那么无论如何这都会进入自定义类,无论是从 nib 加载还是在代码中创建。

    只是我的想法......

    【讨论】:

    • 好答案 +1 :) 界面构建器是魔鬼,任何“认真”的 iPhone 程序员很快就会明白,以编程方式做所有事情是一个更好的解决方案。
    • 我是 iphone 编程的 n00b,没有人能阻止我!
    • 不要使用Interface Builder,最好手写。您可以使用 IB 来确定设计,但不要在最终项目中使用它。你提到你是一个 NOOb,观看这些视频:eng.utah.edu/~cs4962/index.html 你会学到很多东西,而 Matt 不相信使用 IB。
    • 我不会说“不要使用 IB”。而是在有意义和没有意义的地方使用它。一个小 ib 文件可以节省大量丑陋的设置代码。不是在此处讨论的特定情况下,而是在许多其他情况下......
    猜你喜欢
    • 2020-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-01
    • 2020-09-17
    相关资源
    最近更新 更多