內從cellForRowAtIndexPath
內:如何調用表視圖功能從@IBAction
func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell! {
我創建一個UITableViewCell
子類,PeopleTableViewCell
:
let cell:PeopleTableViewCell = self.tv_main.dequeueReusableCellWithIdentifier("row_cell") as PeopleTableViewCell
,然後我通過一些參數
cell.loadItem(param1 as NSString, p2: param2)
現在,在每一行中我都有一個按鈕,當我點擊它時
@IBAction func button_clicked(param1: NSString){
我需要調用在帶一個參數我傳遞的參數(如參數1)的一個父表的功能。
我該如何做到這一點?
編輯後,答案是@rob了:
什麼終於摸索是
A.傳遞給家長的UIViewController一個參考cell.loadItem
func cell.loadItem(param1 as NSString, controller: self)
並將控制器變量分配給一個局部變量,比如pvcontroller
func loadItem(param1: String, controller: PeopleViewController) {
self.pvcontroller = controller
}
B.從PeopleTableViewCell類中,從按鈕的點擊函數中,我通過pvcontroller變量調用父的UIViewController的功能
@IBAction func person_image_click(sender: UIButton) {
self.pvcontroller?.person_clicked(self.param1)
}
順便說一句,確保'pvcontroller'是'weak',否則你可能會得到一個強大的參考週期。 – Rob 2014-09-06 11:06:32