こちらのページで知ったのですが、下記のように書いておけばビューが表示されるたびにリロードされ、かつ初回表示時に二重にリロードされてしまうこともないらしいです。 - (void)viewWillAppear:(BOOL)animated { [self.tableView reloadData]; [super viewWillAppear:animated]; } なぜなら、 UITableViewControllerのviewWillAppear:メソッドでは、まだデータがロードされていない状態の時にだけ、reloadDataを呼び出すよう、実装されているようです。 とのこと。 これ知らなくてフラグ立てて管理してました・・・