我有一個視圖與表視圖。我已經創建了TableViewCells的子類,以表示我的模型的一個對象。這個自定義UITableViewCell有兩個按鈕來改變我的模型對象(它使+1實例變量)。自定義UITableViewCell捕獲UIElements通知的最佳做法
所以我覺得我應該如何架構所有這一切,我的選擇是:
-I把指針在自定義tableViewCell,當我從一個按鈕接收通知我機會單元和對象(我不喜歡這個解決方案,因爲一個視圖正在改變我的模型,不好重複使用這個單元那麼糟糕)
- 在單元類中創建一個UICustomTableViewCellDelegate
協議和一個id<UICustomTableViewCellDelegate>
的實例。當我收到來自UIElement的消息時,我會打電話給我的代表。該委託將指向普通視圖的UIViewController,該視圖擁有包含我的對象的所有實例的數組,並在此處更改模型。將單元格視圖更改爲。我認爲重用並不壞,但我將如何從ViewController數組中輕鬆識別和恢復我的對象?我覺得方法應該是:
-(void)customTableCellViewButtonPlusPressed:(CustomTableViewCell*) cell;
- 製作一個的viewController的CustomTableViewCell與我的對象的引用。他將收到來自單元格的UIButton的消息,並更改cellView和模型的對象
最佳實踐是什麼?
對我來說這似乎是一個很好的答案。只有一個問題:我的ViewCellController應該有一個對CellView的引用?我說因爲默認關係將是一個UIView類對象,當TableView將要求他的數據源委託中的一個TableViewCell時,它將足以投射視圖對象? (UITableViewCell *)cellViewController.view' – Jpellat
nope,我會persent一個函數cellView會是這樣的 [cellViewController cellView] - (UITableViewCell *)cellView {UITableViewCell *)self.view; } 這樣你可以實現更好的視圖封裝,所以如果你以後改變了cellView的實現,你的ViewController根本就不需要改變,你只需要改變CellController中cellView的實現 –
這是一個完美的解釋。謝謝我喜歡這個設計 – Jpellat