gpt4 book ai didi

ios - tableView 显示重复值

转载 作者:搜寻专家 更新时间:2023-11-01 07:10:22 25 4
gpt4 key购买 nike

我有一个搜索栏,可以用来搜索用户。当我第一次搜索用户时,它会显示正确的结果。但是当我移动到详细 View (到用户的个人资料)时,点击那里的任何按钮,然后向后移动,值会变成三倍。当我移动时,它不会影响结果,不要点击任何按钮,然后向后移动。以下是我使用的代码片段:

override func viewDidLoad() {
super.viewDidLoad()

searchController.searchBar.delegate = self
searchController.dimsBackgroundDuringPresentation = false
searchController.searchBar.placeholder = "Search people (by username)"
definesPresentationContext = true
tableView.tableHeaderView = searchController.searchBar

requestManager.delegate = self
}

func updateSearchResults(_ sender: RequestManager) {
tableView.reloadData()
}

func searchBarSearchButtonClicked(_ searchBar: UISearchBar) {

requestManager.resetSearch()
requestManager.searchUser(validatedText)
print("Validated text: \(validatedText)")
}

func searchUser(_ searchText: String) {
refUsers.observe(.value, with: { (snapshot) in

let snapshotDictionary: [String: AnyObject] = snapshot.value as! [String : AnyObject]

for (userKey, _) in snapshotDictionary {

if let usernameValue = snapshot.childSnapshot(forPath: userKey).childSnapshot(forPath: "username").value as? String
{
if usernameValue.lowercased().contains(searchText.lowercased()) {
let userData = JSON(snapshot.childSnapshot(forPath: userKey).value!)


self.searchUsers.append(userData)
}

if self.delegate != nil {
self.delegate?.updateSearchResults(self)
}

}
else {
print("Users could not be found.")
}

}

}) { (error) in
print(error.localizedDescription)
}

}

当我从详细 View 移回时,什么似乎三次调用了结果?这里的所有功能都不在详细 View 中。

最佳答案

在添加更多对象之前,只需从数组中删除对象。

 self.searchUsers.removeAll()
self.searchUsers.append(userData)

所以只要添加那段代码就可以了。

关于ios - tableView 显示重复值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45334386/

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