2012-06-09 54 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(或代碼)進行不變(骨架)視圖。

相關問題