这是我第一个ViewController中的代码
FirstViewController.
@IBOutletweakvar textField: UITextField!
array = [String]()
...
array.append(textField.text!)
...
overridefunc prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
let secondScene = segue.destinationViewController as! SecondViewController
secondScene.inputArray = inputArray
这是我第二个ViewController中的代码。
SecondViewController
@IBOutletweakvar label: UILabel!
array = [String]()
...
print(array) // getting the value that was input by the user
someLabel.text = array[0] // on this line I am getting there error about getting nil
所以我在第一个场景中从textFields向数组输入值,我试图将第一个场景上用户输入的所有内容打印到第二个场景中的标签。当我尝试从数组中提取值并将其分配给Label.text时,它会给出错误:致命错误:在解包可选值时意外发现nil
我真的不知道为什么会这样。
答案 0 :(得分:2)
如果我正确理解您的缩写代码,则会在array
中填充FirstViewController
,但会传递inputArray
。
在SecondViewController
中,您无法阅读inputArray
,但array
您需要填充,传递和读取相同的数组。