2016-10-15 4 views
1

Что такое эквивалент iOS для onRestart(), используемый на Android?эквивалент iOS для onRestart()

onRestart() вызывается, когда текущая активность повторно отображается пользователю (пользователь перешел к ней обратно).

ответ

3

Я считаю, что вам нужно viewWillAppear метод:

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(animated) 
    //your code here 
} 

Это называется каждый раз перед вид будет показан. Таким образом, он будет вызываться, когда вид отображается в первый раз. Если вы хотите избежать запуска кода в первый раз, вызывается viewWillAppear, вам нужно будет добавить свойство флага и проверить, было ли оно установлено ранее.

1

Если вы пытаетесь захватить каждый раз, когда сцена в вопросе приходит в поле зрения, есть два случая, вы можете быть обеспокоены:

  1. Если переход на эту сцену (или отклоняя/выскакивает обратно эта сцена) из приложения. В этом случае используйте viewWillAppear:

    override func viewDidAppear(_ animated: Bool) { 
        super.viewDidAppear(animated) 
    
        update()  // your routine for updating what is displayed to the user 
    } 
    
  2. Если ваше приложение работает, и при нажатии на кнопку «домой» (или перейти в другое приложение), а затем вернуться к вашему приложению (до его прекращения) , 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) 
        } 
    } 
    
Смежные вопросы