gpt4 book ai didi

ios - 如何在 ViewControllers 之间为不同的 tableViews 提供相同的操作 [swift]

转载 作者:行者123 更新时间:2023-12-01 19:36:53 25 4
gpt4 key购买 nike

我有一个带有多个 View Controller 的应用程序,每个 Controller 都有一个表格 View 。每个 View Controller 的表格都有自己的特定用途,但我在每个表格中使用相同的滑动操作。到目前为止,我刚刚复制并粘贴了 trailingSwipeActionsConfigurationForRowAt 的相同代码。和 leadingSwipeActionsConfigurationForRowAt在每个表中。这感觉不对,我知道应该有一种方法可以让我编写一次代码并在整个应用程序中使用它,但我不知道该怎么做。

我已尝试扩展 UITableView但似乎无法使用trailingSwipeActionsConfigurationForRowAtleadingSwipeActionsConfigurationForRowAt扩展文件中的函数。我错过了什么?

这是 trailingSwipeActionsConfigurationForRowAt 的代码只需滑动即可删除:

func tableView(_ tableView: UITableView, trailingSwipeActionsConfigurationForRowAt indexPath: IndexPath) -> UISwipeActionsConfiguration? {
let action = UIContextualAction(style: .destructive, title: "") { (action, view, completionHandler) in

if let item = self.dataSource.itemIdentifier(for: indexPath) {
CoreDataManager.sharedManager.deleteItem(item)
}

completionHandler(true)
}

action.image = UIImage(named: "deleteSymbol")

let configuration = UISwipeActionsConfiguration(actions: [action])
return configuration
}

最佳答案

  • 您将以下函数声明为项目的全局函数并访问您想要的任何位置
  • 您可以通过添加单击按钮时要使用的参数来修改功能。只需在函数中添加参数并在调用时传递数据
    func getSwipeAction(indexpath : IndexPath)-> UISwipeActionsConfiguration{
    let action = UIContextualAction(style: .destructive, title: "") { (action,
    view, completionHandler) in

    completionHandler(true)
    }

    action.image = UIImage(named: "deleteSymbol")

    let configuration = UISwipeActionsConfiguration(actions: [action])
    return configuration
    }
  • 关于ios - 如何在 ViewControllers 之间为不同的 tableViews 提供相同的操作 [swift],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59889807/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com