私は迅速に学習しています。2.新しいView Controllerにタップされているセル(UITableView)のデータを渡そうとしています。しかし、私は常にコードライン "destination!.label.text = valueToPass
"のための "unexpectedly found nil while unwrapping an Optional value
"のエラーを取得します。
以下は私のコードです。
私はそれを解決するために何をすべきか分かりますか?私は何時間も過ごしましたが、まだそれに固執しています。これによりエラー:オプション値をアンラッピングしている間にnilが見つかりました。新しいコントローラにデータを渡している間
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
}
}
''先は、問題を引き起こしています。あなたは 'destination' ViewControllerを持っていません。 'let destination = segue.destinationViewController as if 'を試してみてください。 web___ViewController {} '。そのブロックの中で 'destination'は' nil'にならないでしょう –
*学習*のための2つの提案:1)命名規則を利用する - 変数とメソッド/関数は小文字で始まり、クラス、構造体、列挙型は大文字で始まります手紙とアンダースコアなし。 2)**決して**テーブルビューのセル(ビュー)からデータを取得し、データソース配列(モデル)から取得しない – vadian