我正在学习swift 2.我正在尝试传递被点击到新视图控制器的单元格(UITableView)的数据。但我经常收到错误:“unexpectedly found nil while unwrapping an Optional value
”代码行“destination!.label.text = valueToPass
”。
以下是我的代码
我可以知道我该怎么做才能解决它?我花了几个小时但仍然坚持下去。
func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
let indexPath = tableView.indexPathForSelectedRow;
let Mycell = tableView.cellForRowAtIndexPath(indexPath!) as UITableViewCell!;
valueToPass = (Mycell.textLabel?.text)!
performSegueWithIdentifier("webNext", sender: self)
print("\(indexPath!.row)")
print(valueToPass)
}
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if (segue.identifier == "webNext") {
let destination = segue.destinationViewController as? web___ViewController
destination!.label.text = valueToPass
}
}
答案 0 :(得分:3)
通过执行此操作:destination!.label.text = valueToPass
,即使在绘制或显示标签之前,您已经在标签上设置了一些文字。
而是使用某个变量将数据传递到下一个视图,并在viewDidLoad
内显示数据。
let destination = segue.destinationViewController as? web___ViewController
destination!.strValue = valueToPass
Web_VC:
var strValue:String?
func viewDidLoad(){
super.viewDidLoad()
label.text = strValue!
}