Обновить таблицу на appWillEnterForeground

Я пытаюсь перезагрузить таблицу в любое время, когда пользователь снова загрузит мое приложение iphone. Вся информация для таблицы правильная и правильная. Таблица вводит правильные источники данных и делегатов, а значения, которые я распечатываю, – это то, что я хочу, но визуально таблица не будет перезагружаться визуально. Мои вызовы находятся в appWillEnterForeground, и вызов выполняется для просмотраWillLoad.

Вы не должны запускать viewDidLoad, как описано в комментарии выше. viewDidLoad – это специальный метод, который оболочка CocoaTouch вызывает в соответствующее время. Он не должен быть вызван вашим кодом напрямую.

Вместо этого вы можете использовать оповещения, чтобы выполнить одно и то же. Вот правильный способ сделать то, что вы просите:

- (void)applicationWillEnterForeground:(UIApplication *)application { // Fire a notification to let all views know that our app entered foreground. [[NSNotificationCenter defaultCenter] postNotificationName:@"EnteredForeground" object:nil]; } 

Обращайтесь с уведомлением в своем конкретном ViewController:

 - (void)viewDidLoad { ... [NSNotificationCenter defaultCenter] addObserver:self selector:@selector(enteredForeground:) name:@"EnteredForeground" object:nil]; } // Handle the notification in your ViewController: - (void)enteredForeground:(id)object { // Reload the tableview [self.tableView reloadData]; } 

Вы можете просто наблюдать за UIApplicationWillEnterForegroundNotification, а не публиковать собственное уведомление:

 [[NSNotificationCenter defaultCenter] addObserver:self.tableView selector:@selector(reloadData) name:UIApplicationWillEnterForegroundNotification object:nil];