0

我刚刚从 iOS 和目标 C 开始,我在当前应用程序中尝试完成的一件事是根据表格视图中行的标识和按下的按钮的标识执行 segue(这些是导航栏顶部的按钮)。我感到困惑的原因是,通常当我想用多个按钮做某事时,我对两个按钮都有一个 IBAction,然后使用发件人标签。但是,在这种情况下,我实际上想做的是有类似的东西(如果 indexPath.row ==0 && 按下按钮的身份 ==0) self performSEguewithIdentifier sender
现在我不确定第二部分会发生什么在那个 if 语句中,如果你能帮我写一些代码,我将不胜感激。

谢谢

4

1 回答 1

2

如果用户需要先按下按钮,然后选择一行,则不能像问题中那样使用复合 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
    }
}
于 2013-01-22T17:17:12.690 回答