Uitableviewcell调用uiviewcontroller函数不起作用swift ios
Posted
技术标签:
【中文标题】Uitableviewcell调用uiviewcontroller函数不起作用swift ios【英文标题】:Tableviewcell calling uiview controller function not working swift ios 【发布时间】:2017-04-20 11:41:08 【问题描述】:func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell
cell.viewcontroller = self
func reloadData()
// reload function here, so when called it will reload the tableView
self.notificationTable.reloadData()
Tableview 单元格按钮代码
@IBAction func deleteRecord(_ sender: Any)
self.viewController.reloadData() //<--
遇到错误
@
NotificationTableViewCell.swift:64:18: 类型值 'UIViewController' 没有成员 'reloadData'
【问题讨论】:
在这里self.viewController.reloadData()
使用你的tableview名称self. notificationTable.reloadData()
为什么你在 tableViewCell 中声明了 deleteRecord() ?
你查过max的答案了吗?
【参考方案1】:
试试这个(self.viewController as? YourViewControllerClass).reloadData()
。 UIViewController
没有 reloadData()
方法 - 只有你的子类有。
【讨论】:
【参考方案2】:你需要使用 NSNotificationCenter 调用 reload 方法
// 在你的 ViewController 的 ViewDidLoad 中声明
// Register to receive notification
NotificationCenter.default.addObserver(self, selector: #selector(YourClassName. reloadData), name: Notification.Name("NotificationIdentifier"), object: nil)
在 TableViewCell 中
@IBAction func deleteRecord(_ sender: Any)
// Post notification
NotificationCenter.default.post(name: Notification.Name("NotificationIdentifier"), object: nil)
【讨论】:
以上是关于Uitableviewcell调用uiviewcontroller函数不起作用swift ios的主要内容,如果未能解决你的问题,请参考以下文章
无法从 UITableViewCell 调用 performeguewithidentifier
iOS:调用方法的 UITableViewCell 中的 UITextField
UITableViewCell 对象不调用 awakeFromNib
第一个 UITableViewCell 没有调用 didSelectRowAtIndexPath
uiTableviewcell 中未调用 UicollectionView didSelectItemAtIndexPath