我有細胞內的按鈕,它有一個出口的自定義單元格,它有我的第一個視圖控制器內的IBAction爲:Button sender.superview顯示爲UIViewController而不是我的CustomCell?
-(IBAction)AddButton:(UIButton *)sender{
ProductCell *cell = (ProductCell *)sender.superview;
UITableView *tableView - (UITableView *)cell.superview;
NSIndexPath *indexPath = [tableView indexPathForCell:cell];
NSLog(@"Sender: %@, Super: %@", sender, sender.superview);
//[saveitemArray addObject: [itemArray objectAtIndex:(indexPath.row + 1)]];
//[saveitemArray writeToFile:[self saveListPath] atomically:YES];
}
逐步執行代碼顯示發件人爲一個UIButton但是變量「細胞'作爲FirstViewController。似乎只是完全跳過了牢房和桌子。我錯過了什麼簡單的事情?
更新:
好了,所以我向您展示全IBAction爲,註釋掉最後兩行我的手機變量顯示爲CustomCell(正確的上海華盈),但現在我的tableView變量顯示FirstViewController後superview而不是CustomTable?你的NSLog顯示相同,所以我改變它顯示單元格和cell.superview。下面是結果:
Sender: <UITableViewCellContentView: 0x716fb20; frame = (0 0; 320 43);
gestureRecognizers = <NSArray: 0x71711d0>; layer = <CALayer: 0x716fbd0>>, Super:
<ProductCell: 0x716f820; baseClass = UITableViewCell; frame = (0 0; 320 44); autoresize
= W; layer = <CALayer: 0x716f990>>
第二次更新:
它似乎認爲sender.superview是CellContentView而不是細胞本身,所以當我試圖讓indexPath它會嘗試使用cell作爲表格,CellContentView作爲單元格。我不認爲有必要瀏覽ContentView,我認爲.superview中的按鈕會直接轉到單元格本身?
回答:
好像你必須要經過這個順序的層次結構。
按鈕 - > CellContentView - >電池 - > TableView中
請顯示一些'NSLog'。 'superview'不應該指向一個UIViewController子類。 –
你可以嘗試'NSLog(@「發件人:%@,超級:%@」,sender,sender.superview);'?我想/希望調試器對你說謊。 :) –
@PhillipMills好吧,所以我更新了顯示的IBAction,最後改爲NSlogging單元格變量。 – Jazzer008