将数据传递到导航控制器

时间:2016-04-17 06:40:42

标签: ios swift uiviewcontroller

我在导航控制器中有两个视图控制器(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!

如何解决?

提前谢谢!

2 个答案:

答案 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
}