gpt4 book ai didi

ios - 如何将覆盖函数插入 if else 语句

转载 作者:行者123 更新时间:2023-11-30 12:46:46 25 4
gpt4 key购买 nike

我意识到,使用基本逻辑,我无法将覆盖函数放入 if else 语句中,因为它会覆盖所有内容。但是我仍然需要放入 if else 语句来为 segue 做准备。因此,我正在工作的代码的工作方式是,如果用户点击按钮两次,他们就赢得了游戏,因此转到显示分数的获胜者 View Controller 。如果他们输了,他们就会进入没有得分的 View Controller 。所以我需要将覆盖函数segue放在updateTimer()中,在 else if counter < 9.9 && level == 2部分。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let DestViewController : winViewController = segue.destination as! winViewController

DestViewController.LebelText = labelx.text!

}

func updateTimer() {
counter += 0.1
labelx.text = String(format: "%.1f", counter)
if counter > 10 && level < 2 {
let next = self.storyboard?.instantiateViewController(withIdentifier: "loseViewController") as? loseViewController
self.present(next!, animated: true, completion: nil)
} else if counter < 9.9 && level == 2 {
let nextc = self.storyboard?.instantiateViewController(withIdentifier: "winViewController") as? winViewController
self.present(nextc!, animated: true, completion: nil)
} else {
return
}
}

最佳答案

为了构建 Jon 上面的评论,您甚至不应该调用 present(UIViewController:) - 它甚至不会调用 prepare(for segue:)方法。听起来您想要做的是在特定时间检查条件,并根据该条件传递一些数据以呈现在目标 View Controller 中。

如果你想使用segues,最好的办法是设置一个segue标识符:

首先,您需要创建 Segue。将鼠标悬停在 Storyboard 中 VC 顶部的 View Controller 图标上,然后按住 Control 并拖动到目标 VC: createSegue

然后选择segue类型

之后,您需要为 Segue 设置唯一标识符,以便可以区分代码中的任何其他 Segue。为此,请选择 Segue 本身,然后转到检查器 Pane 并在“标识符”字段中输入唯一名称: identifySegue

为您想要的两个 Segue 完成此操作后,您可以将代码编辑为如下所示:

func updateTimer() {
counter += 0.1
labelx.text = String(format: "%.1f", counter)
if counter > 10 && level < 2 {
// Use first unique segue identifier
self.performSegue(withIdentifier: "identityA", sender: self)
} else if counter < 9.9 && level == 2 {
// Use second unique identifier
self.performSegue(withIdentifier: "identityB", sender: self)
}
}

现在您可以在 prepare(for segue:) 中添加特殊代码,并且您可以使用在 Interface Builder 中指定的唯一标识符来区分并为不同的目标 VC 添加特殊代码

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "identityA" {

let destinationA: winViewController = segue.destination as! winViewController
destinationA.LebelText = labelx.text

} else if segue.identifier == "identityB" {

let destinationB: loseViewController = segue.destination as! loseViewController
destinationB.LebelText = labelx.text

}
}

关于ios - 如何将覆盖函数插入 if else 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41538865/

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