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