2013-07-30 61 views
1

我在xib中創建了一個自定義單元格(在iOS6中使用Storyboards,但是爲單元格創建了單獨的xib),現在我試圖將我的揚聲器按鈕連接到我的UITableViewController sublcass中的IBAction。在xib上的自定義單元格上設置IBAction?

enter image description here

我註冊了我的手機在我viewDidLoad中:

[self.tableView registerNib:[UINib nibWithNibName:@"MissedWordTableCell" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:@"MissedWordCell"]; 

我已經嘗試了幾種不同的方法來添加目標。例如,在我的tableView:cellForRowAtIndexPath中,我試圖直接添加目標。

static NSString *CellIdentifier = @"MissedWordCell"; 
MissedQuestionEntity *missedQuestion; 

// forIndexPath: is iOS6 
MissedWordTableCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath]; 
// Add target here? Didn't work. @selector(playWordAction) or @selector(playWordAction:) 
// [cell.playAudioBtn addTarget:self action:@selector(playWordAction) forControlEvents:UIControlEventTouchUpInside]; 

我也試圖設置文件所有者,以我的表視圖控制器在我的自定義單元格廈門國際銀行,但仍然沒有工作。

這裏是我的錯誤信息:

2013-07-30 07:47:15.833 Spanish[69420:c07] *** Terminating app due to uncaught exception  
'NSInvalidArgumentException', reason: '-[__NSArrayI doIt]: unrecognized selector sent to instance  
0xec34430' 
*** First throw call stack: 
(0x231e012 0x172de7e 0x23a94bd 0x230dbbc 0x230d94e 0x1741705 0x6752c0 0x675258 0x736021 0x73657f 0x7356e8  
0x6a4cef 0x6a4f02 0x682d4a 0x674698 0x1c0bdf9 0x1c0bad0 0x2293bf5 0x2293962 0x22c4bb6 0x22c3f44 0x22c3e1b  
0x1c0a7e3 0x1c0a6 
+1

要調用'doIt'方法在某個地方在你的代碼中,請檢查 –

+0

是的,那是我在自定義單元格xib中向文件所有者(我的UITableViewController的子類)所做的IBAction連接。 – h4labs

+0

doIt IBAction playAudioBtn按鈕?或者是其他東西? – DharaParekh

回答

5

的UITableViewCell剛剛註冊的屬性:

@property (strong, nonatomic) IBOutlet UIButton *playSoundButton; 

在你的UITableViewController

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self.tableView registerNib:[UINib nibWithNibName:@"YourCustomCell" bundle:nil] forCellReuseIdentifier:@"YourCustomCell"]; 
    // ... 
} 


- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    YourCustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"YourCustomCell"]; 

    [[cell playSoundButton] addTarget:self action:@selector(playWordAction:) forControlEvents:UIControlEventTouchUpInside]; 

    //... 
} 

-(IBAction) playWordAction:(id) sender 
{ 
    // do what you want to 
} 
+0

這看起來像我所描述的,我試過的東西?這有什麼不同?我的選擇器沒有找到。我必須錯過別的東西? – h4labs

+0

我想你是在UITableViewCell上添加一個IBAction,但是你不需要!只需註冊財產,或...看看「 - (IBAction)playWordAction:(id)發件人」 –

+0

沒關係。這確實有用。在嘗試第二種方法之前,我一定有其他錯誤。 – h4labs

相關問題