action:@selector(showAlert :)如何在这个showAlert方法中传递参数?

6 iphone objective-c uialertview ios

我正在为我添加自定义按钮UITableViewCell.在该按钮的操作中,我想调用showAlert:函数并希望在方法中传递单元格标签.

如何在此showAlert方法中传递参数:action:@selector(showAlert:)

小智 9

如果您在Tableviewcell中使用Button,则必须为每个单元格的按钮添加标记值,并将方法addTarget设置为id作为参数.

示例代码:

您必须在cellForRowAtIndexPath方法中键入以下代码.

{

     // Set tag to each button
        cell.btn1.tag = indexPath.row; 
        [cell.btn1 setTitle:@"Select" forState:UIControlStateNormal];  // Set title 

     // Add Target with passing id like this
        [cell.btn1 addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];    


     return cell;

}

-(void)btnClick:(id)sender
{

    UIButton* btn = (UIButton *) sender;

     // here btn is the selected button...
        NSLog(@"Button %d is selected",btn.tag); 


    // Show appropriate alert by tag values
}
Run Code Online (Sandbox Code Playgroud)


sli*_*ver 2

那是不可能的。您必须创建一个符合 IBAction 的方法

- (IBAction)buttonXYClicked:(id)sender;
Run Code Online (Sandbox Code Playgroud)

在此方法中您可以创建并调用 UIAlertView。不要忘记将按钮与 Interface Builder 中的方法连接起来。

如果您想区分多个按钮(例如,每个表格单元格中有一个按钮),您可以设置按钮的标签属性。然后检查sender.tag 点击来自哪个按钮。