保存所选表视图行的用户名

时间:2019-01-06 21:34:45

标签: ios swift uitableview

我试图在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!
    }

1 个答案:

答案 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)