我在Master / Detail应用程序中有一个UITableView,它可以正确地转移到详细视图控制器。由于我在详细视图上做了一些动画,如果用户选择已经选择的相同单元格,我不想重新触发segue - 特别是在横向的iPad或iPhone 6 Plus上。
在这种情况下是否可以限制segue被触发,或者如果他们点击当前选择的单元格,则可以将tableview编程为无法识别tap?
(我在Swift编程,但Objective-C答案也一样好。无论哪种方式。)
谢谢。
答案 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()
}