swift传递tableview和viewController之间的值

时间:2016-09-30 11:37:55

标签: ios swift xcode uitableview

我知道这个问题很多次被问到......从最近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
        }
    }

    }

1 个答案:

答案 0 :(得分:1)

你的逻辑错了。 UITableView仅维护屏幕上可见的单元格。因此,如果您尝试访问不可见的单元格,则会出现nil异常。

首先不要使用CGPoint来获取索引。为单元格中的每个按钮分配一个标记,并将该按钮传递给performSegue函数的sender参数。

然后您应该将您的患者数据保存在阵列中。然后使用button.tag作为数组的索引来访问数据。您将获得患者模型对象,您可以从此对象将数据传递给下一个视图控制器。