ios - 保存选定表格视图行的用户名
问题描述
我正在尝试保存与 tableView 中每一行对应的所有用户名。我有下面的代码,它似乎只将用户保存在第一行。不知道出了什么问题或如何解决。
var selectedIndexPathArray = [IndexPath?]() (outside of functions)
@IBAction func sendTapped(_ sender: Any) {
...
guard let selectedIndexPathArray = self.tableView.indexPathForSelectedRow else {
return
}
for user in selectedIndexPathArray {
selectedUsers.append(followingKeys[user])
}
selectedUsers.append(User.current.username)
}
extension SendToPopOverViewController: UITableViewDataSource {
...
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
self.selectedIndexPathArray = tableView.indexPathsForSelectedRows!
}
我在 viewDidLoad 中也有这个:
self.tableView.allowsMultipleSelection = true
self.tableView.allowsMultipleSelectionDuringEditing = true
解决方案
selectedIndexPathArray
首先,您可能不希望UITableView
跟踪选定的索引路径。其次,在你的sendTapped(_:)
函数中,你应该在你的语句中使用indexPathsForSelectedRows
而不是。假设这是一个用户名数组,代码应该如下:indexPathForSelectedRow
guard let
followingKeys
guard let selectedIndexPathArray = self.tableView.indexPathsForSelectedRows else {
return
}
for indexPath in selectedIndexPathArray {
selectedUsers.append(followingKeys[indexPath.row])
}
selectedUsers.append(User.current.username)
推荐阅读
- node.js - 从多个视频文件到单个输出
- sql - 如何选择与列表中所有值匹配的值?
- elasticsearch - Kibana - 日志分析 - 查找唯一事务号
- spring-boot - 如何注册来自不同 IP 地址的服务?
- python - 如何在 django-oscar 2.0 中定义店内现金支付方式
- android - 使用 facebook android firebase 登录时空对象引用上的虚拟方法“boolean java.lang.String.equals(java.lang.Object)”
- sql - 无法获取所有订单项目并继续获取具有子组件的订单行
- azure - 如何在 MS Azure 中结合两种算法进行预测分析
- php - 如何定义常量?
- android - 无法识别的APK