我有一個tableview使用UIButton在自定義的UITableViewCell觸發我的視圖控制器中的IBAction。在IOS7中,我能夠通過執行UITableViewCell *clickedCell = (UITableViewCell *)[[[sender superview] superview]superview]
來引用觸發操作的特定單元。從IBAction獲取對UITableViewCell的引用?
這在iOS7中運行良好,但它似乎在iOS8中需要將superview
之一移除以返回該單元格,否則返回nil。所以我現在就是這樣做的,而且它工作正常,但我想知道是否有更清晰的方法來實現這一點。我只是不喜歡這個樣子。
UITableViewCell *clickedCell;
if (SYSTEM_VERSION_LESS_THAN(@"8.0")) {
clickedCell = (UITableViewCell *)[[[sender superview] superview]superview];
}
else{
clickedCell = (UITableViewCell *)[[sender superview]superview];
}
更好的方法是搜索按鈕的超級視圖直到找到該單元格。看看我的答案在這裏,http://stackoverflow.com/questions/22949304/get-uitableviewcell-of-uibutton/22950960#22950960 – rdelmar 2014-10-04 22:23:55
奇怪我得到'屬性'superview'找不到類型的對象'__strong id' 'on'superView = sender.superview',這是沒有道理的,因爲它不知道它是什麼類,它怎麼知道它做了什麼和沒有? – 2014-10-05 12:59:34