按下导航后退按钮时如何调用功能?

时间:2017-01-31 18:03:45

标签: ios swift uinavigationcontroller

按下后退按钮时我需要调用一个函数。 优选地,无需创建另一个按钮

2 个答案:

答案 0 :(得分:8)

将以下内容放在视图控制器中。

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
    }
}

当parent为nil时,表示视图正从堆栈中删除(即按下后退按钮)。

与matt的答案相比,一个考虑因素是在willMove之前调用viewWillDisappear。您的里程将根据您的功能而有所不同,但这可能会导致根据您的具体需求出现问题。话虽如此,答案完全能够满足您的要求。

答案 1 :(得分:5)

实施viewWillDisappear,并在其中测试isMovingFromParentViewController。如果后者是真的,那么你就会被弹出。