我在初始视图控制器中有几个按钮。单击任何按钮时,将显示带有可扩展桌面视图的弹出窗口。我正在使用单个弹出框来显示所有具有不同数据的按钮,以便在tableview上显示。当我点击其他按钮以便全部点击第一个按钮时,弹出框中的选定项目将被删除。所选项目将基于indexpath.row保存到数组中。当我尝试基于相同的indexpath.row从同一个数组中删除所选项时,会出现异常错误。
如何在所有popover的每个单元格选择中存储复选标记?
这是我的一段代码
func expandableTableView(_ expandableTableView: LUExpandableTableView, didSelectRowAt indexPath: IndexPath)
{
let selectedService = arrData[indexPath.section].Children?[indexPath.row].EnglishName ?? ""
let inPrice = arrData[indexPath.section].Children?[indexPath.row].InPrice ?? 0
print("service and price : \(selectedService) \(inPrice)")
let selectedItem = (" \(selectedService) \(inPrice)")
let cell: UITableViewCell? = expandableTableView.cellForRow(at: indexPath)
if cell?.accessoryType == UITableViewCellAccessoryType.none
{
cell?.accessoryType = UITableViewCellAccessoryType.checkmark
selectionArr.append(selectedItem)
inPriceCount = inPrice
}
else
{
cell?.accessoryType = UITableViewCellAccessoryType.none
selectionArr.remove(at: indexPath.row)
inPriceCount = -inPrice
}
self.delegate?.messageData(data: selectionArr as AnyObject)
self.delegate?.inPrice(data: inPriceCount as AnyObject)
let rowToSelect = [expandableTableView .indexPathForSelectedRow]
print(rowToSelect)
}
答案 0 :(得分:0)
你不应该从数组中删除任何东西。只需在每个索引上添加一个键
dict["ischeckMarked"]=false
当您点击复选标记时更改为真
dict["ischeckMarked"]=true
如果已经选中,现在要取消标记,请将其更改为false
dict["ischeckMarked"]=false
希望这会帮助你。