设置:
我有一个标准的 TableViewController.swift
作为 tableview 委托(delegate),还有一个名为 TableViewDataSource.swift
的单独文件作为数据源。
对于表格 View 的顶部,我在单元格内有一系列按钮,这些按钮具有关闭操作。本部分的目标是作为用户可以忽略的通知:
每个按钮都有一个标签,即 indexPath.row
。
问题
我的问题是这样的。一旦用户点击“x”按钮,我想动画删除这个单元格。它由这个处理:
func tappedOnExit(_ sender: UIButton) {
print ("tapped on \(sender.tag)")
}
但是,要正式删除一行,我需要调用
func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath)
如上所述,由于按钮函数 tappedOnExit
位于我的 dataSource
中,它是来 self 的 viewController 的单独文件,所以我无法调用类似 self.tableView 的东西。 deleteRowsAtIndexPaths
非常感谢您的建议。谢谢!
最佳答案
您需要在 viewcontroller 文件中添加观察者(通知中心)。
单击“x”后,您可以从数据源文件中调用发布通知。
NSNotificationCenter.defaultCenter().postNotificationName(deleteRow, object: indexPath.row)
关于ios - 当它是一个单独的 Swift 文件时,从 TableViewDataSource 中删除或添加单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745065/