Xcode 5:如果表视图是编辑模式,如何从表视图中删除?

时间:2014-03-20 06:18:48

标签: ios xcode tableview segue editmode

我有一个简单的表视图,当用户点击一行时,可以转换到update-view-contoller来编辑该行。问题:当表视图处于“编辑模式”时,我想转到update-view-contoller,否则不会发生任何事情。

我正在使用Storyboard创建将原型单元链接到update-view-controller的segue。

如果表视图处于“编辑模式”,如何使segue工作?

这是我对segue代码的准备,当用户点击表视图控制器中的一行时调用该代码。我的segue有一个名为“ShowUpdate”的标识符:

-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

    if ([[segue identifier] isEqualToString:@"ShowUpdate"]) {

        UpdateViewController *updateviewcontroller = [segue destinationViewController];

        NSIndexPath *myIndexPath = [self.tableView indexPathForSelectedRow];

        int row = [myIndexPath row];

        NSString *selectedRow = [NSString stringWithFormat:@"%d", row];

        updateviewcontroller.DetailModal = @[_Title[row], _Description[row], selectedRow];

    }

}

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

如果检查tableView的isEditing属性是否简单?

@property(nonatomic, getter=isEditing) BOOL editing

我不是从原型单元格中创建一个segue,而是从ViewController本身拖动它,然后在didSelectRowAtIndexPath:委托方法中检查上面的属性,并从那里执行代码中的segue。

另外,您需要在viewDidLoad中的某处设置allowSelectionDuringEditing属性。

self.tableView.allowsSelectionDuringEditing = YES;

代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (self.tableView.isEditing) {

    UITableViewCell *cell = [self.tableView cellForRowAtIndexPath:indexPath];
    [self performSegueWithIdentifier:@"ShowUpdate" sender:cell];
    }
}

Segue construction:

enter image description here