1

マスター/ディテールのようなアプリ (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;

しかし、何も起こりません... 新しく挿入されたアイテムがテーブル ビューに表示される時間がなかったためでしょうか?

助けてくれてありがとう

4

1 に答える 1

0

[tableView reloadData] を追加してみてください:

[tableView insertRowsAtIndexPaths:@[newIndexPath] withRowAnimation:UITableViewRowAnimationFade];
[tableView reloadData];
[tableView selectRowAtIndexPath:newIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone];

編集

scrollToRowAtIndexPathセルのみを強調表示し、起動しません。次のdidSelectRowAtIndexPath方法で手動で呼び出してみてください。

[tableView.delegate tableView didSelectRowAtIndexPath:indexPath];
于 2013-09-10T15:29:21.377 に答える