如果已经选择了UITableViewCell,请不要删除?

时间:2015-08-18 01:32:22

标签: ios objective-c swift uitableview segue

我在Master / Detail应用程序中有一个UITableView,它可以正确地转移到详细视图控制器。由于我在详细视图上做了一些动画,如果用户选择已经选择的相同单元格,我不想重新触发segue - 特别是在横向的iPad或iPhone 6 Plus上。

在这种情况下是否可以限制segue被触发,或者如果他们点击当前选择的单元格,则可以将tableview编程为无法识别tap?

(我在Swift编程,但Objective-C答案也一样好。无论哪种方式。)

谢谢。

1 个答案:

答案 0 :(得分:1)

在UITableViewDelegate中使用shouldHighlightRowAtIndexPath

- (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath:(NSIndexPath *)indexPath{
    return !([indexPath isEqual:[tableView indexPathForSelectedRow]]);
}

和Swift版本:

func tableView(tableView: UITableView, shouldHighlightRowAtIndexPath indexPath: NSIndexPath) -> Bool {
    return indexPath != tableView.indexPathForSelectedRow()
}