我向你保证,我在发布这个问题之前检查了所有的答案,然后解开一个对象,但这件事对我来说似乎并不适用。我只是试图将我的单元格中的文本值传递到下一个屏幕上的标签。
override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
if(segue.identifier == "detailViewSegue")
{
var DVC:DetailedViewController = segue.destinationViewController as DetailedViewController
let path:NSIndexPath = self.tableView.indexPathForSelectedRow()
var segueRecipeName:String = recipeMgr.RecipeName[path.row] as String
DVC.detailedRecipeLabel.text = segueRecipeName
}
}
问题出现在这一行 -
DVC.detailedRecipeLabel.text = segueRecipeName //Can't UnWrap Optional - None
我知道我应该在分配之前检查segueRecipeName的nil值。我在控制台上进行了打印检查,但显然不是空的。仅当我将值分配给第二个视图控制器类对象时才会发生错误。我确信这会帮助其他人学习Swift:)
答案 0 :(得分:0)
DVC.detailedRecipeLabel
是nil
可能是IBOutlet
尚未加载。
您应该向DetailedViewController
添加一个自定义属性,该属性将接受您的文字,保存,然后您可以将其分配到viewDidLoad
中的标签。
示例:
class DetailedViewController ... {
...
var recipeName: NSString? = nil
...
override func viewDidLoad() -> () {
...
self.detailedRecipeLabel.text = self.recipeName
}
}
DVC.recipeName = segueRecipeName