我试图在tableView中保存与每一行相对应的所有用户名。我有下面的代码,似乎只将用户保存在第一行。不确定出什么问题或如何解决。
onclick
viewDidLoad中也有这个
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!
}
答案 0 :(得分:0)
首先,您可能不希望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)