Что такое эквивалент iOS для onRestart()
, используемый на Android?эквивалент iOS для onRestart()
onRestart()
вызывается, когда текущая активность повторно отображается пользователю (пользователь перешел к ней обратно).
Что такое эквивалент iOS для onRestart()
, используемый на Android?эквивалент iOS для onRestart()
onRestart()
вызывается, когда текущая активность повторно отображается пользователю (пользователь перешел к ней обратно).
Я считаю, что вам нужно viewWillAppear
метод:
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
//your code here
}
Это называется каждый раз перед вид будет показан. Таким образом, он будет вызываться, когда вид отображается в первый раз. Если вы хотите избежать запуска кода в первый раз, вызывается viewWillAppear
, вам нужно будет добавить свойство флага и проверить, было ли оно установлено ранее.
Если вы пытаетесь захватить каждый раз, когда сцена в вопросе приходит в поле зрения, есть два случая, вы можете быть обеспокоены:
Если переход на эту сцену (или отклоняя/выскакивает обратно эта сцена) из приложения. В этом случае используйте viewWillAppear
:
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
update() // your routine for updating what is displayed to the user
}
Если ваше приложение работает, и при нажатии на кнопку «домой» (или перейти в другое приложение), а затем вернуться к вашему приложению (до его прекращения) , viewDidAppear
является не называется. Для того, чтобы обнаружить, что сценарий, вы можете наблюдать .UIApplicationDidBecomeActive
:
private var observer: NSObjectProtocol?
override func viewDidLoad() {
super.viewDidLoad()
observer = NotificationCenter.default.addObserver(forName: .UIApplicationDidBecomeActive, object: nil, queue: nil) { [weak self] notification in
self?.update()
}
}
deinit {
if let observer = observer {
NotificationCenter.default.removeObserver(observer)
}
}