您好我正在尝试传回一个具有级别编号的变量。用户清除后面的圆形称为
if enemyHP <= 0.0{
level = level + 1
battle(winPlayer:true)
}
然后称功能战
let alert = UIAlertController(title: "finished!", message: finishedMessage, preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title:"Go Back",style:.default,handler:{action in
self.dismiss(animated: true, completion: nil)}))
self.present(alert,animated: true,completion: nil)
}
我正在尝试在前一个视图控制器中显示级别编号,因此我需要传递变量级别。最好的方法是什么?我使用了segues,但它并没有使用警报。
代表
protocol DataSentDelegate {
func Back(data: Int)
}
我用过
delegate?.Back(data: level)
在之前的ViewController中,我添加了
func Back(data: Int){
new = data
}
print(new)
它没有出现。
答案 0 :(得分:0)
您应该使用segue,然后以这种方式传递 prepare(for:sender:)中的对象,而不是使用 dismiss-present 方法:
func prepare(for segue:UIStoryboardSegue, sender:Any?)
{
if segue.identifier == "Back" // Give it any name
{
if let destination = segue.destination as? MyViewController // NOTE: this is your custom view controller class
{
destination.level = yourDesiredValue
}
}
}
更新以执行segue:
let alert = UIAlertController(title: "finished!", message: finishedMessage, preferredStyle: UIAlertControllerStyle.alert)
alert.addAction(UIAlertAction(title:"Go Back",style:.default,handler:{action in
self.performSegue(withIdentifier: "Back", sender: nil)
}
self.present(alert,animated: true,completion: nil)