如果用户需要先按下按钮,然后选择一行,则不能像问题中那样使用复合 if 语句,因为尚未选择该行。一种方法是让您的按钮方法在 ivar 上设置一个值(基于其标签),然后您将其签入 didSelectRowAtIndexPath:。所以,如果你有一个 int ivar,buttonPressed,你的 IBAction 可能是:
@implementation ViewController {
int buttonPressed;
}
-(IBAction)buttonPressed:(UIButton *) sender {
buttonPressed = sender.tag;
}
然后,在 didSelectRowAtIndexPath 方法中:
-(NSIndexPath *)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
if(buttonPressed == 1) {
// do something with indexPath.row info
// perform whichever segue
}else if (buttonPressed == 2) {
// do something with indexPath.row info
// perform whichever segue
}
}