segue 如何仅与某些指定按钮一起使用
How segue works only with some specified buttons
我正在使用 Xcode 做一个项目。我有四个按钮,其中两个用于在视图之间传递数据,并希望另外两个用于跳转到另一个视图而不传递任何数据。前两个表现很好,将数据传递给另一个视图。但是当我点击剩下的两个时,应用程序崩溃说:
"2017-10-30 23:08:11.970500-0400 xxx[2557:65602] Could not cast value
of type 'xxx.goalInfoViewController' (0x107f01580) to
'xxx.IOViewController' (0x107f019a0)."
代码如下:
@IBAction func monthlyIncomeAction(_ sender: Any) {
numberForSegue = 1
performSegue(withIdentifier: "outcomeSegue", sender: self)
}
@IBAction func MonthlyOutcomeAction(_ sender: Any) {
numberForSegue = 2
performSegue(withIdentifier: "incomeSegue", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: (Any)?) {
let ioController = segue.destination as! IOViewController
ioController.segueIndex = numberForSegue
}
您应该确保只有两个要在视图之间传递数据的 segue 可以 运行 在 prepare
方法中编码。让我们为 prepare
方法尝试下面的代码。
override func prepare(for segue: UIStoryboardSegue, sender: (Any)?) {
if segue.identifier == "outcomeSegue" || segue.identifier == "incomeSegue" {
return;
}
let ioController = segue.destination as! IOViewController
ioController.segueIndex = numberForSegue
}
或者
override func prepare(for segue: UIStoryboardSegue, sender: (Any)?) {
if segue.destination is IOViewController {
let ioController = segue.destination as! IOViewController
ioController.segueIndex = numberForSegue
}
}
我正在使用 Xcode 做一个项目。我有四个按钮,其中两个用于在视图之间传递数据,并希望另外两个用于跳转到另一个视图而不传递任何数据。前两个表现很好,将数据传递给另一个视图。但是当我点击剩下的两个时,应用程序崩溃说:
"2017-10-30 23:08:11.970500-0400 xxx[2557:65602] Could not cast value of type 'xxx.goalInfoViewController' (0x107f01580) to 'xxx.IOViewController' (0x107f019a0)."
代码如下:
@IBAction func monthlyIncomeAction(_ sender: Any) {
numberForSegue = 1
performSegue(withIdentifier: "outcomeSegue", sender: self)
}
@IBAction func MonthlyOutcomeAction(_ sender: Any) {
numberForSegue = 2
performSegue(withIdentifier: "incomeSegue", sender: self)
}
override func prepare(for segue: UIStoryboardSegue, sender: (Any)?) {
let ioController = segue.destination as! IOViewController
ioController.segueIndex = numberForSegue
}
您应该确保只有两个要在视图之间传递数据的 segue 可以 运行 在 prepare
方法中编码。让我们为 prepare
方法尝试下面的代码。
override func prepare(for segue: UIStoryboardSegue, sender: (Any)?) {
if segue.identifier == "outcomeSegue" || segue.identifier == "incomeSegue" {
return;
}
let ioController = segue.destination as! IOViewController
ioController.segueIndex = numberForSegue
}
或者
override func prepare(for segue: UIStoryboardSegue, sender: (Any)?) {
if segue.destination is IOViewController {
let ioController = segue.destination as! IOViewController
ioController.segueIndex = numberForSegue
}
}