ios - 按下 UINavigationController 的后退栏按钮时执行操作

标签 ios xcode swift uinavigationcontroller

我需要执行一个操作(清空数组),当按下 UINavigationController 的后退按钮时,该按钮仍会导致堆栈上的前一个 ViewController出现。我怎么能用swift完成这个? enter image description here

最佳答案

按照另一个答案的建议将按钮替换为自定义按钮可能不是一个好主意,因为您将失去默认的行为和样式。

您的另一个选择是在 View Controller 上实现 viewWillDisappear 方法并检查名为 isMovingFromParentViewController 的属性。如果该属性为真,则表示 View Controller 正在消失,因为它正在被移除(弹出)。

应该看起来像:

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    if self.isMovingFromParentViewController {
        // Your code...
    }
}

在 swift 4.2 中

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)

    if self.isMovingFromParent {
        // Your code...
    }
}

关于ios - 按下 UINavigationController 的后退栏按钮时执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27713747/

相关文章:

ios - AES 加密和解密

iphone - 更改多行时使用 NSFetchedResultsController 禁用 UITableView 的动画

ios - 模态视图 Controller 上的导航栏

android - Google AdMob 类型

ios - 未找到架构 armv7 的 React Native 符号

arrays - 从数组中删除重复的 PHAssets?

ios - Apple Healthkit 和 iOS 7 部署目标

ios - 使用 CL Location 的基于位置的应用程序。我的代码中的一行出现问题

iphone - xcode 4.2 位置模拟器和时区

ios - 快速创建具有第三方依赖性的iOS编译的SDK(使用CocoaPods)