之后更新表格单元格变量的值

时间:2017-09-12 20:51:42

标签: ios swift uitableview

我使用自定义单元格创建了一个tableview。

在我的UITableViewCell文件中,我有以下代码:

var myTipView:EasyTipView?

@IBAction func infoBtn_pressed(_ sender: UIButton) {
    //print(diseases)
    if self.myTipView == nil
    {
        self.myTipView = EasyTipView(text: diseases, preferences: EasyTipView.globalPreferences)
        self.myTipView!.show(forView: sender)

    }
    else
    {
        self.myTipView!.dismiss()
        self.myTipView = nil
    }
}

在我的UIViewController里面我有一个带有代码的tableview:

var myTipView:EasyTipView?


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = myTable.dequeueReusableCell(withIdentifier: "diffCell") as! diffCell

 cell.myTipView = self.myTipView

}

当我尝试使用self.myTipView的值时,我发现它为零,这是显而易见的,因为它在InfoBtn_pressed被激活之前没有任何值,在这种情况下,当表首次创建时,cell.myTipView总是为nil

如何在按下按钮后让self.myTipView获取值,以便在UIViewController中使用它

3 个答案:

答案 0 :(得分:2)

设置myTipView值后,您需要刷新表格: -

tableView.reloadData()

答案 1 :(得分:1)

您可以尝试在myTipView参数中添加一个观察者:

var myTipView : EasyTipView? {
    didSet {
        // Test that myTipView is non-nil
        if let _ = myTipView {
             // implement a function here that  updates the cells in the table view...
        }
     }
}

我假设您可以处理更新表格单元格(顺便提一下,您的实现似乎表明每个单元格都具有相同的EasyTipView属性:这是您的意图吗?)。希望有所帮助。

答案 2 :(得分:0)

最后,当在表格单元格中单击按钮并且工作得很好时,我使用委托来通知表格(^^)