我對視圖和視圖控制器的職責感到困惑。如何有效地使用MVC體系結構
我已閱讀Apple's Doc on MVC,但沒有說明任何明確的例子來回答我的問題。
我有一個簡單的數據庫應用程序,它從數據庫中提取數據並使用UITableView顯示它。
我的視圖是自定義視圖。它基本上是一個UITableView的集合,顯示在UIView中彼此相鄰的顯示從數據庫計算出的數據。
我的看法控制器爲每個UITableview實現委託。
我有一個容器視圖(UIView的),其中包含它 的viewController內的所有的UITableView:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:
(NSIndexPath *)indexPath
{
UIView *containerForAllview = [tableview superview];
//container view contains list of dataset . each of which is displayed
// by it's own respective tableview
if(tableview = atableview){
array = containerForAllview.getDatafortable(atableview);
}else if(tableview = btableview){
array = containerForAllview.getDatafortable(btableview);
}
/// like this for few more tables
// configure cells using this array
cell.text = [array objectAtIndex:indexpath.row].name;
}
我覺得什麼是有鬼我的設計。
- 視圖控制器是否需要知道我的整個視圖層次結構。最初我以爲我的ContainerView會抽象一切。
- (其責任是處理用戶事件)tableview的委託應該由containerView或我的viewcontroller實現。
- 如果我的視圖處理事件,那麼我的UIViews需要引用我的數據模型,這違反了MVC體系結構的概念。
- 是不是我的容器視圖持有列表的數組來提供它的tableviews或我應該將該邏輯移動到視圖控制器?
對我來說聽起來好像你的模型只是另一個(數據庫)控制器。模型將是一個類,它擁有數據庫中的一條記錄。 – vikingosegundo 2012-07-13 22:49:49
我的模型是一個核心數據對象 – 2012-07-13 22:50:36
比你的措辭比較模糊。 – vikingosegundo 2012-07-13 22:51:16