2017-01-31 3 views

ответ

7

В контроллере вашего вида наберите следующее.

override func willMove(toParentViewController parent: UIViewController?) { 
    super.willMove(toParentViewController: parent) 

    if parent == nil { 
     // The view is being removed from the stack, so call your function here 
    } 
} 

Когда родитель равен нулю, это означает, что представление удаляется из стека (т.е. кнопка назад была нажата).

Одно соображение по сравнению с ответом мата заключается в том, что willMove вызывается до viewWillDisappear. Ваш пробег будет зависеть от того, что делает ваша функция, но это может привести к проблемам, основанным на ваших конкретных потребностях. С учетом сказанного, любой ответ вполне способен предоставить то, что вы запросили.

+0

Хороший ответ +1. – Hasya

+0

Спасибо. Оба ответа работали для меня. ;) –

3

Внесите viewWillDisappear и, в нем, тест isMovingFromParentViewController. Если последнее верно, вы выскакиваете.