Swift Ios Parse SearchBar Complication



我最近在关注一个教程,该教程显示了 Swift 的早期版本用于使用搜索函数从 Parse 创建用户表。以下代码允许我根据需要在表中显示所有用户,但是一旦将搜索文本放入搜索栏,就不会更新表。(有两个用户数组,因为我对编程相对较新,并且遵循两个不同的教程来帮助制作此表)。任何帮助都非常感谢!!

var userArray: [String] = []
var userList:NSMutableArray = NSMutableArray()
@IBOutlet weak var searchBar: UISearchBar! = UISearchBar()

func loadUsers(name:String){
    var findUsers:PFQuery = PFUser.query()
    if !name.isEmpty {
        findUsers.whereKey("name", containsString: name)
    }
    findUsers.findObjectsInBackgroundWithBlock{
        (objects:[AnyObject]!, error:NSError!) -> Void in
            self.userList = NSMutableArray(array: objects)
            self.tableView.reloadData()
    }
}
func searchBar(searchBar: UISearchBar, textDidChange searchText: String) {
    loadUsers(searchText)
}
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
    loadUsers("")
}
override func viewDidLoad() {
    super.viewDidLoad()
    loadUsers("")
    searchBar.delegate = self
    self.navigationItem.hidesBackButton = true
    var query = PFUser.query()
    query.whereKey("username", notEqualTo: PFUser.currentUser().username)
    var users = query.findObjects()
    for user in users {
        userArray.append(user["name"] as String)
        println(userArray)
    }
}
// MARK: - Table view data source
override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Potentially incomplete method implementation.
    // Return the number of sections.
    return 1
}
override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    // #warning Incomplete method implementation.
    // Return the number of rows in the section.
    return userArray.count
}
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
       var cell:UITableViewCell = self.tableView.dequeueReusableCellWithIdentifier("cell") as UITableViewCell
     if userArray.count >= 1 {
       cell.textLabel?.text = userArray[indexPath.row]
     }
    return cell
}

您必须创建一个新数组,该数组保存搜索栏中保存结果的数据。

此外,最好创建一个布尔变量来处理屏幕中显示的数据(对于搜索结果为true,对于loadUsers为false)。

本文可以帮助您: http://shrikar.com/blog/2015/02/16/swift-ios-tutorial-uisearchbar-and-uisearchbardelegate

相关内容

最新更新