簡體   English   中英

單擊搜索欄上的“取消”時如何重新加載tableview中的所有數據?(IOS / Swift)

[英]How can I reload all of data in tableview when I click cancel on search bar?(IOS/Swift)

我添加了UISearchbar ,當我單擊“取消”按鈕時,我想重新加載tableview上的所有數據。 但是它顯示了被搜索欄過濾的單元格。 如何僅顯示搜索結果,而不是僅顯示搜索結果?

@IBOutlet weak var mySearchBar: UISearchBar!    
@IBOutlet var myTableView: UITableView!


var foods = [Food]()
var foodsSearching = [Food]()

// search in progress or not
var isSearching : Bool = false

override func viewDidLoad() {
    super.viewDidLoad()

    // Use the edit button item provided by the table view controller.
    navigationItem.leftBarButtonItem = editButtonItem()

    if let savedFoods = loadFoods() {
        foods += savedFoods
    } else {

    }

    // set table view delegate
     self.myTableView.dataSource = self
    self.myTableView.delegate = self

    // set search bar delegate
    self.mySearchBar.delegate = self
}

....

// hide keyboard when cancel button clicked
func searchBarCancelButtonClicked(searchBar: UISearchBar) {
    self.mySearchBar.text = ""
    self.mySearchBar.resignFirstResponder()

    self.myTableView.dataSource = self
    self.myTableView.delegate = self


    //////////////////////////////////////////////
    //need to reload all of data..not only the cells filtered by search bar
    self.myTableView.reloadData()


}

在重新加載表格視圖之前,將isSearching上的searchBarCancelButtonClicked設置為false 在tableview委托上,檢查isSearching是否為true,然后使用foods數組,否則使用foodsSearching數組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM