2012-06-14 27 views
1

我需要調用方法並將自定義的UITableViewClass實現中的對象傳遞給我的UITableViewController類。我意識到在自定義tableViewCell中創建tableViewController的一個實例,並調用tableViewController的方法是一個不好的做法。從自定義UITableViewCell的UITableViewController中調用方法

這樣做的正確方法是什麼?

回答

0

Objective-C中的兩個神奇概念是DelegationNotifications

委託允許您將控制器掛鉤到單元格中引用的弱對象,這樣可以避免保留週期,同時仍允許您向其發送消息。

通知允許您的單元向任何正在進行並正在監聽的類別廣播一般通知。

選擇一個,並以最容易的爲準。在這種情況下,兩者基本上是平等的。

+0

我可以通過與通知的對象?如果沒有,我會嘗試委派。 – mnort9

+1

是的。方法'-postNotificationName:object:userInfo:'在usersInfo參數中接受一個參數的NSDictionary。不_不通過對象參數傳遞對象。 – CodaFi

0

具有細胞內tableController一提的是確實是壞的做法

你可以通過實現你的UITableViewClass 特殊@protocol解決這個問題,並添加一個委託方法給它,然後implment內UITableViewController的方法,既然你UITableViewClass代表是你的UITableViewController,那麼你會這樣稱呼它 在UITableViewClass.m

[delegate someMethod:data]; 
+0

不好?它被鼓勵......代表團,通知,超級......哎呀,即使消息本身的概念本身也暗示着雙向溝通。 – CodaFi

+0

委託調用委託對象中的方法,並且通知是強制對象解耦,所以我猜你甚至不明白我想說什麼,或者我沒有解釋它非常好,無論哪種方式-1不值得,因爲如果你仔細閱讀答案,你會注意到我所做的是實施一個新的代表:),如果你再讀一遍,我會很高興,謝謝 –

+0

奧馬爾,我沒有讓你失望。 – CodaFi

相關問題