У меня есть UITableView
в виде в моем приложении для iOS. Я хочу перезагрузить таблицу, когда приложение возвращается на передний план. Я попытался добавить наблюдателя в viewDidLoad
, но события NotificationCenter
принимаются синхронно, поэтому applicationWillEnterForeground
вызывается только после завершения какой-либо другой операции синхронизации.
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(applicationDidBecomeActive),
name: UIApplication.willEnterForegroundNotification, object: nil)
}
@objc func applicationWillEnterForeground() {
tableView.reloadData()
}
Затем я заменил наблюдателяс этим, так что он работает асинхронно. Но это тоже не сработало.
NotificationCenter.default.addObserver(forName: UIApplication.willEnterForegroundNotification,
object: nil, queue: OperationQueue.main, using: self.applicationWillEnterForeground(notification:))
Я знаю, что могу использовать NotificationQueue
, как показано ниже, но как я могу добавить наблюдателя?
let notification = Notification(name: UIApplication.willEnterForegroundNotification)
NotificationQueue.default.enqueue(notification, postingStyle: .asap)
ОБНОВЛЕНИЕ:
Я понял, что applicationWillEnterForeground
в AppDelete
также вызывается только после завершения операции синхронизации. Это нормальное поведение?