我在第一个 View Controller 中有两个按钮,每个按钮代表用户可以玩的游戏(一个宾果游戏和一个内存游戏)。我通过 segue 将这两个按钮从第一个 View Controller 传递到第三个 View Controller ,并在接收 View Controller (thirdVC)中创建了两个 UIButton 变量。
现在,我需要在第三个 View Controller 中创建一个条件语句,以便当用户在第一个 View Controller 中按下宾果按钮时,用户会转到宾果游戏以玩游戏,或者如果用户按下在第一 View Controller 中的内存游戏按钮中,用户继续到内存游戏以便玩内存游戏。换句话说,如果用户按下宾果游戏按钮,则对宾果游戏执行BingoSegue,或者如果用户按下内存游戏按钮,则对内存游戏执行内存Segue。我对如何编写实际按钮感到困惑,因为 IBAction 按钮代码位于第一个 View Controller 中。我已经为此工作了数周,并在 stackoverflow 中对此进行了研究,但尚未成功。我假设我需要一个 bool 值。任何帮助将不胜感激!
var bingoButton = UIButton()
var memoryButton = UIButton()
var isSelected = false
override func viewDidLoad() {
super.viewDidLoad()
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
//bingoButton:
if isSelected {
performSegue(withIdentifier: "bingoSegue", sender: sender)
print("bingoSegue")
}
//memoryButton:
if isSelected {
performSegue(withIdentifier: "memorySegue", sender: sender)
print("memorySegue")
}
}
最佳答案
在 Storyboard中,您可以通过控制从按钮拖动到特定的目标 View Controller 来添加两个不同的segue。那么您就不必在代码中手动执行检查和连接:
如果您必须将数据从第一个 View Controller 传递到“游戏 View Controller ”,您可以命名这些转场并在第一个 View Controller 的 prepareForSegue
函数中检查它们:
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "Bingo" {
// ...
} else if segue.identifier == "Memory" {
// ...
}
}
关于ios - 条件和 UIButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50952614/