2012-06-09 56 views
0

我目前正在考虑项目,它基本上是解释来自许多抽象数据源的数据。我们是否应该使用Interface Builder来动态创建UI?

所以应用内的通信是这样

[UI] <-> [Controller/Delegate] <-> [Subclass of Abstract Data Source] 

这基本上是MVC模式。什么是我的问题,每个[Subclass of Abstract Data Source]只能使用有限的[UI]量,因此流程基本上是这样的:

  • 创建数据源(DS)的DS
  • 可能UI的
  • 获取列表的实例创建UI选择器和实例化预设UI
  • 让DS修改UI从DS通过预定义的处理方法
  • 填充UI

示例UI的是NSTableViewNSOutlineViewNSCollectionView

所以我基本上需要更改列名,秩序,控制风格,...而不必专门为每个Data Source

独特NSWindow的可能性现在问题:

如果我需要动态UI创建和自定义数据处理逻辑(对Core Data没有绑定等),我应该(甚至有可能)使用InterfaceBuilder,还是应该以编程方式实现所有视图逻辑?

回答

3

使用你喜欢的任何一个。任何变化/动态区域都可由控制器来表示/处理。从某种意义上说,这意味着我建议将动态部分编码到控制器 - 但如果您愿意,仍然可以将XIB用于常见的高级设计。

因此,当视图不适合单数据表示形式并用于多个视图时,可以将实现/变体移动到控制器域。当一个实现/定义适用于所有人时,那么你可以在XIB或程序中定义它 - 无论你喜欢把它放在哪里。在这种情况下,您可以使用XIB(或代码)进行不变(骨架)视图。

相关问题