我正在开发类似于应用程序的Master-Detail(适用于iPhone和iPad),并且在插入新项目时我无法重现Notes本机应用程序的相同行为。此外,我还没有在Google上找到任何有趣的帮助。在插入时,我想将用户重定向到新插入项的详细视图。我试着在控制器的didChangeObject:方法中调用selectRowAtIndexPath:如下所示:
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject
atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type
newIndexPath:(NSIndexPath *)newIndexPath
{
UITableView *tableView = self.tableView;
switch(type) {
case NSFetchedResultsChangeInsert:
[tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
[tableView selectRowAtIndexPath:newIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
break;
但没有任何反应......可能是因为新插入的项目没有时间出现在表格视图中?
提前感谢您提供任何帮助
答案 0 :(得分:0)
尝试添加[tableView reloadData]:
[tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
[tableView reloadData];
[tableView selectRowAtIndexPath:newIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
修改强>:
scrollToRowAtIndexPath
仅突出显示该单元格,并且不会触发didSelectRowAtIndexPath
,尝试通过以下方式手动调用:
[tableView.delegate tableView didSelectRowAtIndexPath:indexPath];