Мне нужно вызвать функцию, когда я нажимаю кнопку «Назад». Предпочтительно, без необходимости создавать другую кнопкуКак я могу вызвать функцию при нажатии кнопки навигации?
2
A
ответ
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
. Ваш пробег будет зависеть от того, что делает ваша функция, но это может привести к проблемам, основанным на ваших конкретных потребностях. С учетом сказанного, любой ответ вполне способен предоставить то, что вы запросили.
3
Внесите viewWillDisappear
и, в нем, тест isMovingFromParentViewController
. Если последнее верно, вы выскакиваете.
Хороший ответ +1. – Hasya
Спасибо. Оба ответа работали для меня. ;) –