我需要調用方法並將自定義的UITableViewClass
實現中的對象傳遞給我的UITableViewController
類。我意識到在自定義tableViewCell中創建tableViewController的一個實例,並調用tableViewController的方法是一個不好的做法。從自定義UITableViewCell的UITableViewController中調用方法
這樣做的正確方法是什麼?
我需要調用方法並將自定義的UITableViewClass
實現中的對象傳遞給我的UITableViewController
類。我意識到在自定義tableViewCell中創建tableViewController的一個實例,並調用tableViewController的方法是一個不好的做法。從自定義UITableViewCell的UITableViewController中調用方法
這樣做的正確方法是什麼?
Objective-C中的兩個神奇概念是Delegation和Notifications。
委託允許您將控制器掛鉤到單元格中引用的弱對象,這樣可以避免保留週期,同時仍允許您向其發送消息。
通知允許您的單元向任何正在進行並正在監聽的類別廣播一般通知。
選擇一個,並以最容易的爲準。在這種情況下,兩者基本上是平等的。
具有細胞內tableController一提的是確實是壞的做法
你可以通過實現你的UITableViewClass
特殊@protocol
解決這個問題,並添加一個委託方法給它,然後implment內UITableViewController
的方法,既然你UITableViewClass
代表是你的UITableViewController
,那麼你會這樣稱呼它 在UITableViewClass.m
[delegate someMethod:data];
我可以通過與通知的對象?如果沒有,我會嘗試委派。 – mnort9
是的。方法'-postNotificationName:object:userInfo:'在usersInfo參數中接受一個參數的NSDictionary。不_不通過對象參數傳遞對象。 – CodaFi