结合didSelectRowAtIndexPath和prepareForSegue

时间:2013-08-13 10:45:29

标签: ios uitableview uistoryboardsegue

我有以下问题:只有在UITableViewCellSelectionStyleNone为真时才会执行segue。

    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
    if (cell.selectionStyle == UITableViewCellSelectionStyleNone) {
        [self performSegueWithIdentifier:@"Update" sender:indexPath];{

        }
    }
}


- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{          
    if ([[segue identifier] isEqualToString:@"Update"]) {
        NSManagedObject *selected = [self.travelA objectAtIndex:[[self.tableView indexPathForSelectedRow] row]];
        TravelVC *destViewController = segue.destinationViewController;
        destViewController.travel = selected;
        destViewController.positionString =  _positionStringA;
    }
}

但这不起作用。如果单元格选择样式不是UITableViewCellSelectionStyleNone,也将执行segue。也许有办法将这两种方法结合起来。

提前致谢。

1 个答案:

答案 0 :(得分:1)

您不应该将您的逻辑基于UITableViewCellSelectionStyleNone的单元格设置。相反,您应该使用indexPath来询问您的模型,并找出该项目的选择是否可用/合理。