Как я могу гарантировать, что моя функция табличных данных вызывается только один раз, когда приложение отображается снова (из фонового запуска или запуска)?
То есть, я хочу, чтобы данные моей таблицы обновлялись, когда пользователь нажимает на значок приложения, и только один раз. Таким образом, требование будет:
а) метод обновления в контроллере вызывается только один раз после нажатия пользователем значка приложения
b) быть действительным независимо от того, запускает ли пользователь (i) приложение в первый раз, (ii) возвращается из фона, (iii) любые другие средства пользователя, запрашивающего приложение, возвращаются на передний план.
Проблема, с которой я сталкиваюсь в своей реализации в настоящее время, заключается в том, что обновление данных вызывается дважды в случае, когда приложение возвращается из фона, поэтому я в основном хочу улучшить это. Способ, которым я занимаюсь в настоящее время, который имеет недостатки:
- (void)updateEventData {
// UPDATE CODE HERE
}
- (void)becomeActive:(NSNotification *)notification {
[self updateEventData];
[self.tableView reloadData];
}
- (void)viewDidLoad {
[super viewDidLoad];
[self updateEventData];
// Auto Refresh Data - Handle Case where App becomes active from background & you want to refresh data
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(becomeActive:)
name:UIApplicationDidBecomeActiveNotification
object:nil];
}