我有,我搜索用户的搜索栏。当我第一次搜索用户时,它显示正确的结果。但是,当我移至详细视图(对用户的配置文件)时,点击任何按钮,然后移回,值重复三次。移动时不会影响结果,不要点击任何按钮并向后移动。以下是我使用的代码片段:的tableView显示重复值
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)
}
}
当我从细节视图移回时,似乎要调用结果三次?这里没有任何功能在详细视图中。
的问题是不是你的tableview,但你的searchUsers。要调用每次追加和不冲水老结果 – GIJOW