如何在Swift中通过segue发送多个变量? QBBust被发送得很好并在视图控制器上打印,但QBName由于某种原因不会被发送。谁能发现原因?
if let send = sender as? Double{
destination.QBBust = send
}
if let sent = sender as? String{
destination.QBName = sent
}
}
}
private var _QBName:String!
var QBName: String{
get{
return _QBName
} set {
_QBName = newValue
}
}
private var _QBBust:Double!
var QBBust: Double {
get {
return _QBBust
} set{
_QBBust = newValue
}
}
override func viewDidLoad() {
super.viewDidLoad()
let bust = String(Int(_QBBust))
QBBustLabel.text = "\(bust)%"
QBNameLabel.text = _QBName
}
下一部分是触发segue的按钮功能
performSegue(withIdentifier: "QBResultVC", sender: QBBust)
performSegue(withIdentifier: "QBResultVC", sender: QBName)
答案 0 :(得分:2)
正如在Tiago的回答中,您可以创建一个具有QBName和QBBust属性的新结构或类。此外,您还可以在Swift中使用元组。
这是一个例子:
目标ViewController中的
声明var QBInfo:(name: String, bust: Double)?
和触发segue的按钮功能
let QBInfo = (name: QBName, bust: QBBust)
performSegue(withIdentifier: "QBResultVC", sender: QBBust)
然后在prepareForSegue:sender:
方法
destination.QBInfo = QBInfo
答案 1 :(得分:0)
这个问题是重复的,但您可以创建一个Struct或新类,并将数据存储到属性中并在segue中发送'transport'对象。
有关详细信息,请查看此回答: