2013-03-20 82 views
5

我在故事板中的原型單元格上有一個自定義輔助視圖(一個UIButton)。當我點擊該按鈕時,不會調用點擊附件按鈕的委託方法。如果我使用標準的披露按鈕,它被稱爲很好。我假設我錯過了某處的連接。有人知道在哪裏?UITableView原型單元格上的自定義輔助視圖不會觸發

+0

我正在使用UITableViewCell子類,並在界面生成器中設計單元格。我沒有從桌面視圖控制器中完成它。我需要從這個子類中調用。 – smokingoyster 2013-03-20 17:42:07

回答

1

我最終解決了這個問題,使用自定義表格單元的協議。

CustomAccessoryTableCellDelegate.h

@protocol CustomAccessoryTableCellDelegate <NSObject> 

    @required 
    - (void) accessoryButtonTappedForCell: (UITableViewCell *) cell; 

@end 

CustomAccessoryViewTableCell.h

@interface CustomAccessoryViewTableCell : UITableViewCell 

     /** The custom accessory delegate. */ 
     @property (nonatomic, weak) id<CustomAccessoryTableCellDelegate> delegate; 

@end 

CustomAccessoryViewTableCell.m

- (IBAction) buttonAction:(id)sender{ 

    if ([self.delegate respondsToSelector:@selector(accessoryButtonTappedForCell:)]) { 
     [self.delegate accessoryButtonTappedForCell:self]; 
    } 

} 

內部表視圖控制器

- (UITableViewCell *)tableView:(UITableView *)tableView 
     cellForRowAtIndexPath:(NSIndexPath *)indexPath{ 

    CustomAccessoryViewTableCell *cell = [tableView 
         dequeueReusableCellWithIdentifier:@"MyCustomCell"]; 

    cell.label.text = @"Some Name"; 
    cell.delegate = self; 

    return cell; 
} 

#pragma mark - Custom Accessory View Delegate 

- (void) accessoryButtonTappedForCell:(UITableViewCell *)cell{ 
    [self tableView:self.writerTable 
     accessoryButtonTappedForRowWithIndexPath: [self.writerTable 
                 indexPathForCell:cell]]; 
} 
2

猜想1: 你不是真的有一個「自定義配件視圖」你有它放置在一個附件將大大UIButton。這不會觸發代表配件輕觸按鈕,因爲它不是真正的配件。

猜測二: 你有一個真正的配件的觀點,但它從來沒有得到「自來水」事件,因爲你在它UIButton這是吃的用戶交互,但不點火的動作。在這種情況下,請嘗試添加一個簡單的UIView

除此之外,我需要更多的信息。

+0

我嘗試使用圖像視圖,而沒有任何區別。該按鈕連接到UITableViewCell的accessoryView屬性。有沒有辦法從UITableViewCell子類以編程方式調用它? – smokingoyster 2013-03-20 17:40:12

+0

在你的'cellForRowAtIndexPath'中,當你得到單元格後,檢查你的'accessoryView'屬性是否有對你的視圖的引用,或者它是否爲'nil'。如果它在IB中正確設置,它應該存在。 – DBD 2013-03-20 17:49:12

+0

我顯示按鈕/視圖/無論我在那裏。似乎它只處理自己定義的附件視圖類型上的輕敲事件。而且似乎沒有一種從表格單元編程的好方法。我最終使用了一個自定義協議,我將會給出答案。 – smokingoyster 2013-03-20 18:00:22

2

蘋果文檔用於附件委託方法說

委託通常響應於通過顯示與所選擇的行中的新的視圖上的展開按鈕的抽頭(附件視圖)。當爲indexPath中的行設置附件視圖時,不會調用此方法。

因此不需要定製配件視圖。這是一種標準行爲。

相關問題