Intereting Posts
Выбирать общие элементы из NSArray словарей на основе значения для ключа Создание JSON из основных данных Правильное бета-право на тестовое тестирование TestFlight в iTunesConnect с FlashBuilder Ошибка API SDK для Facebook при публикации на стене пользователя GPUImage медленнее первого размытия Сохранить NSURLConnection open + Chunked Encoding Upload Реализация алгоритма сортировки выбора не работает Как правильно выравнивать текст с помощью Core Graphics Перечисления в объявлении метода делегата Как получить доступ к слабым связанным структурам в iOS? Запись сигнала в AudioKit в файл GPUImage: как применять различные фильтры к изображению, масштабировать их и вырезать результаты на выходное изображение Как отключить ведение журнала журналов на iOS в swift? Журнал сбоев iOS: что такое «purgeable_ptr_in_use_enumerator»? iOS, как обнаружить прокрутку влево или вправо на UICollectionView, который иначе прокручивает только по вертикали?

Обновить таблицу на 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];