我知道这个问题很多次被问到......从最近2天开始。请帮帮我。
我有一个自定义TableView尝试将此Tableview的Array中的少量数据传递给下一个View。
错误:在解包可选值时意外发现nil。
我尝试了很多方法......但没有成功。
EDITED
终于解决了
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "SegueToQR"
{
let controller = segue.destinationViewController as! QRcodeViewController
if let button = sender as? UIButton {
let cell = button.superview?.superview?.superview as! PatientTableViewCell
controller.passName = cell.patientName.text
controller.passAdress = cell.adress.text
}
}
}
答案 0 :(得分:1)
你的逻辑错了。 UITableView仅维护屏幕上可见的单元格。因此,如果您尝试访问不可见的单元格,则会出现nil异常。
首先不要使用CGPoint来获取索引。为单元格中的每个按钮分配一个标记,并将该按钮传递给performSegue函数的sender参数。
然后您应该将您的患者数据保存在阵列中。然后使用button.tag作为数组的索引来访问数据。您将获得患者模型对象,您可以从此对象将数据传递给下一个视图控制器。