1

我正在学习 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
    }

}
4

1 回答 1

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!
}
于 2016-10-06T04:38:22.327 回答