gpt4 book ai didi

swift - 使用 contains() 检查是否在 Swift 中按下后退按钮

转载 作者:行者123 更新时间:2023-12-01 10:00:16 27 4
gpt4 key购买 nike

我需要检查是否在 Swift 中按下了后退按钮。该操作不会以编程方式触发,因此该方法似乎是检查 self 是否在 viewcontroller 堆栈中。我认为解决方案在这里:

How to check for self with contains() in Swift?

然而,对于每个答案,Swift 都告诉我 contains 是一个未解析的标识符。我知道它在 Swift 标准库中,所以我想我不知道如何使用它。

那么下面函数的正确形式是什么?

override func viewDidDisappear(_ animated: Bool) {
if let viewControllers = self.navigationController?.viewControllers as? [UIViewController] {
if (contains(viewControllers, self)) {
print("Back button not pressed")
} else {
print ("Back button pressed")
}
}
}

最佳答案

与 RAJAMOHAN-S 类似,我会查看我要从哪里过渡。然而,函数

override func willMove(toParentViewController parent: UIViewController?)

提供了一种很好的方法;我结合了一个简单的 bool 变量来区分是否真的使用了后退按钮,或者另一个编程方法是否意味着一个转换事件。

override func willMove(toParentViewController parent: UIViewController?) {
super.willMove(toParentViewController: parent)
if parent == nil {
// The back button was pressed, can be acted on
}
}
else{
print ("Coming here from a child view")
}
}

关于swift - 使用 contains() 检查是否在 Swift 中按下后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44896751/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com