【问题标题】:Is it okay to define a custom view using Storyboard / NSViewController instead of XIB file是否可以使用 Storyboard / NSViewController 而不是 XIB 文件定义自定义视图
【发布时间】:2021-04-10 07:43:19
【问题描述】:

我总是觉得在XIB 文件中定义自定义NSView 有点烦人(因为没有更好的词)。 我已切换到使用自定义故事板(每个班级一个)和相应的NSViewController。将视图添加到我的层次结构时,我只是使用如下代码:

let viewController: CustomViewController = // Use my custom extensions to instantiate the NSViewController subclass.
self.view.addSubview(viewController.view)

有什么缺点吗?是否可以使用这种方法或者是否有任何缺点(可能NSViewController 实例接收其他事件或默认以某种方式添加到另一个层次结构)。

【问题讨论】:

    标签: swift storyboard nsviewcontroller


    【解决方案1】:

    作为一般规则,Storyboard 中的视图控制器由其控制器类中的代码支持。

    .instantiateViewController(...) 然后用于从 Storyboard 加载视图控制器,并且:

    • 推一下
    • 展示它
    • 将其添加为子视图控制器,通常随后将其视图添加到当前层次结构中

    如果您确实有代码支持该视图控制器,并且您没有将其添加为子级或将其分配给类 var/property,那么控制器代码将不再存在因为viewController 超出范围。如果您已将任何 UI 元素连接到该控制器类,或者您需要调用该类中的任何函数,您就会遇到问题。

    但是,假设您没有有任何与该 VC 关联的代码,那么它在功能上实际上等同于在 XIB 中设计视图并使用生成的 Nib 实例化它。

    【讨论】:

      猜你喜欢
      • 2011-06-17
      • 1970-01-01
      • 2012-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-12
      • 1970-01-01
      • 2012-07-13
      相关资源
      最近更新 更多