2013-11-21 57 views
0

所以我有這個UITableViewCell子類,它有一些非常複雜的邏輯 - 它觸發了它實際連接到的UIViewController中的一些操作。當然,電池是沒有意識到它的UIViewController,但我還是找到它是這樣的:在多個UIViewControllers中使用單個UITableViewCell子類

UITabBarController *tabVC = (UITabBarController *)appDelegate.rootVC.centerPanel; 
SGFirstTabViewController *firstTab1 = [tabVC.viewControllers firstObject]; 

[firstTab1 reloadCell:self]; 

的事情是,現在我想用的UITableViewCell相同的子類是約5不同UIViewControllers

這樣做的最好方法是什麼?我幾乎永遠不會知道什麼是UITableViewCell's VC,並且我無法一次又一次地創建具有相同代碼的5個不同的單元格子類。什麼是最好的方法呢?

回答

1

我認爲在模型 - 視圖 - 控制器編程模式中單元的角色可能存在一些誤解。

單元格不應該自己重新加載,但它應該被告知由控制它的視圖控制器重新加載。單元格中的重新加載代碼可以保持不變。

因此,視圖控制器不是要查明它的視圖控制器是哪一個,而是讓視圖控制器監聽單元動作(例如,通過委託方法)並按照指示填充適當的重新加載數據。

+0

這聽起來像一個完美的想法。那麼如何將所有這些代表的東西放在多個風險投資中,是不是會讓他們發現爲什麼觸發了風險投資的行爲而相互衝突呢? –

+0

如果一個單元格應該觸發各種其他VC的動作,則需要一個不太緊密的耦合機制:'NSNotificationCenter'!另外,如果您沒有表格視圖,請勿使用單元格。 – Mundi

+0

感謝您的寶貴意見。兩個非常有用和明智的想法來支持MVC模型) –

相關問題