我在导航控制器中有两个视图控制器(fitstViewController.swift和secondViewController.swift)。
我的想法是 在firstViewController中有一个按钮和一个textFIeld。当我单击该按钮时,textField中的值将传递给secondViewController。
然而它出错了"线程1:信号SIGABRT"在第一个控制器中。
这是第一个控制器中的代码..
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let destination = segue.destinationViewController as! UINavigationController
let detailController = destination.topViewController as! secondViewController
detailController.stockSymbol = textField.text
}
我在第二个控制器中只添加了一行..
var stockSymbol:String!
如何解决?
提前谢谢!
答案 0 :(得分:3)
在第二个控制器中,声明的变量应为
var stockSymbol:String?
除非你确定它永远不会是零,否则你不应该强行打开它。
答案 1 :(得分:1)
用以下代码替换旧代码:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
guard let destination = segue.destinationViewController as? SecondViewController else { return }
destination.stockSymbol = textField.text
}