2014-05-20 36 views
0

我有一個自定義單元格,其中有一個UIButton和一個UITextField。現在,當我點擊按鈕我想要捕獲indexpath.rowdidDeselectRowAtIndexPath。但是當我點擊按鈕didDeselectRowAtIndexPath沒有被調用。我知道按鈕會捕獲點擊。但很想知道任何解決方法?任何聰明的方式傢伙。如何從UIButton cell item調用didDeselectRowAtIndexPath iOS

請指導

謝謝。

enter image description here

+3

您可以使用按鈕的標籤屬性來獲取索引路徑。 – suhit

+0

@suhit看看我的回覆下面的評論。 – LUI

+0

你可以使用委託協議方法來執行viewController中的動作 –

回答

0

沒有必要從按鈕單擊事件調用didSelect方法嘗試在您- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath指標只是設置按鈕標籤indexPath.row,如:

 cell.btnInvite.tag=indexPath.row; 
    [cell.btnInvite addTarget:self action:@selector(btnCommentClick:) forControlEvents:UIControlEventTouchUpInside]; 


-(void)btnCommentClick:(UIButton*)sender 
{ 
    NSLog(@"frined add %d",sender.tag); //now do you stuff that you want you have selected cell index as a button tag. 

} 
+0

我試過這個,但是在按鈕的動作中,我總是收到最後一個索引path.row。我試圖通過獲取索引行刪除單擊按鈕上的文本字段,但它總是刪除最後一行。任何想法? – LUI

+0

我沒有使用sender.tag..my壞..現在很好。 – LUI

0

添加按鈕的目標

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

    //Continue with your code... 

[cell.actionButton addTarget:self action:@selector(didTapButton:) forControlEvents:UIControlEventTouchUpInside];  
} 


- (void)didTapButton:(id)sender { 
    // Cast Sender to UIButton 
    UIButton *button = (UIButton *)sender; 

    // Find Point in Superview 
    CGPoint pointInSuperview = [button.superview convertPoint:button.center toView:self.tableView]; 

    // Infer Index Path 
    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:pointInSuperview]; 

    NSLog(@"%d", indexPath.row); 
} 
+0

看看我對上述評論的回覆。 – LUI

相關問題