我是一个快速的初学者,我正在为我的第一个应用程序而苦苦挣扎。抱歉,如果我的问题太基础了,但我在此处的代码中收到一条错误消息:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
let secVC: NavigationViewController = segue.destinationViewController as! NavigationViewController // here is the error
secVC.receiveImeNaSladkarnica = Label1.text!
secVC.KordaA = Shirina.text!
secVC.KordaB = Duljina.text!
secVC.PodImeNaObekt = Label2.text!
我创建了 2 个不同的按钮:Navi Me 和更多信息按钮。
第一个 (Navi Me) 与另一个名为 NavigationViewContorller 的 View Controller 相连,我通过使用 prepare for segue 发送我需要的所有数据。一切都很完美,但现在我创建了另一个名为 (MoreInfo) 的按钮。它与名为 MoreInfoViewController 的第三个 View Controller 相连。我想我已经连接好一切,但是当我点击 MoreInfo 按钮时应用程序停止工作并且我收到以下错误:Thread 1: signal SIGBART in the marked line。我不明白为什么当这个 segue 用于另一个 View Controller 时它会中断,nt 用于 MoreInfoViewController。你能告诉我该怎么做或给我一个如何修复它的例子吗
我试过:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?)
{
switch segue.identifier {
//error here-> case "VC1" :
let secVC: NavigationViewController = segue.destinationViewController as! NavigationViewController
secVC.receiveImeNaSladkarnica = Label1.text!
secVC.KordaA = Shirina.text!
secVC.KordaB = Duljina.text!
secVC.PodImeNaObekt = Label2.text!
//error here -> case "VC2" :
let secVC2: MoreInfoViewController = segue.destinationViewController as! MoreInfoViewController
secVC2.receiveImeNaSladkarnica = Label1.text!
secVC2.KordaA = Shirina.text!
secVC2.KordaB = Duljina.text!
secVC2.PodImeNaObekt = Label2.text!
default:
break
还是不行
最佳答案
每个 segue 都应该有一个唯一的字符串标识符。
对于多个 View Controller ,使用 switch
语句
switch segue.identifier {
case "vc1" :
// prepare to go to vc1
case "vc2" :
// prepare to go to vc2
default : break
}
再次重申我昨天的评论:
既然你是 Swift 的初学者,请先学习考虑变量名以小写字母开头的命名约定。
关于swift - 是否可以为 2 个不同的 View Controller 准备 2 次 segue?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39678152/