ios - 当它是一个单独的 Swift 文件时,从 TableViewDataSource 中删除或添加单元格

标签 ios swift uitableview

设置:

我有一个标准的 TableViewController.swift 作为 tableview 委托(delegate),还有一个名为 TableViewDataSource.swift单独文件作为数据源。

对于表格 View 的顶部,我在单元格内有一系列按钮,这些按钮具有关闭操作。本部分的目标是作为用户可以忽略的通知:enter image description here

每个按钮都有一个标签,即 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/

相关文章:

ios - 快速的 Alamofire POST 请求

java - 转发新 session 时出错找不到: Capabilities [{iPhone=Safari, browserName=Safari, deviceVersion=10.3.1, platformName=iOS}]

ios - 在将其解析为 JSON 文件 Swift 后声明类型

ios - 在 UIWebView 中显示来自不同 View Controller 的 URL

ios - 是否可以使用 Storyboard使用 UIViewController 而不是 UITableViewController 创建静态表?

swift - 强制 TableView 单元格到一页上

Iphone:应用可行性

swift - 从抛出函数到非抛出函数的无效转换

swift - 如何更改单元格中的 ImageView 大小?

ios - 提供APIKey : should be called at most once (Swift)