Я некоторое время застрял с чем-то и не смог найти решение для него.Загрузить данные только один раз в поле зрения контроллера
Я создаю приложение, похожее на musical.ly, где на главной странице есть пользовательский контроллер навигации, позволяющий пользователю пронестись по 3 экранам с помощью панели вкладок внизу (см. Скриншоты приложения).
Теперь, что происходит здесь, так же, как я прокручивал с экрана 1 на другой, а затем возвращался снова, он снова загружает все данные и возвращает меня к первому видео - я хочу, чтобы можно было провести между экранами и вернуться на одно и то же видео на той же отметке времени, что и в предыдущем видео.
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
[MBProgressHUD showHUDAddedTo:pageViewController.view animated:TRUE];
[self loadjson_homeVideoData];
});
Выше мой блок кода, в котором я звоню веб-службу, хранение ответа в NSArray и передавая этот массив NSDictionary на другой контроллер представления. (NSArray и Dictionary оба являются сильным свойством)
Проблема заключается в том, что когда я перехожу на другой контроллер и прихожу на домашний контроллер, все данные становятся пустыми и сбой приложений.
Есть ли способ отобразить эти данные, когда этот контроллер просмотра снова вызван? Я просто хочу загружать данные сразу и не каждый раз.
PS: Вызов dispatch_once (& onceToken,^{в ViewDidLoad()
Я был бы очень признателен некоторые рекомендации здесь - для справки вы можете проверить musical.ly приложение на прошивкой
this is the home screen, see at the top are three screens that the user can swipe among
В вашем примере: вы добавляете HUD к своему виду и загружаете json в глобальную очередь. Вы должны использовать основную очередь для HUD вместо глобальной очереди для обоих. –
Проблема не в том, чтобы вызвать api в очереди. Я сохраняю ответ в NSDictionary контроллера домашних представлений, и когда я перехожу на другой контроллер, словарь становится нулевым, а данные не прилипают. –
Вы передаете этот словарь в nextViewController? –