ios - 当我在搜索栏上单击取消时,如何重新加载 tableview 中的所有数据?(IOS/Swift)

标签 ios swift tableview

我添加了 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()


}

最佳答案

在重新加载 TableView 之前,在 searchBarCancelButtonClicked 上将 isSearching 设置为 false。在 tableview 委托(delegate)上,检查 isSearching 是否为真,然后使用 foods 数组,否则使用 foodsSearching 数组。

关于ios - 当我在搜索栏上单击取消时,如何重新加载 tableview 中的所有数据?(IOS/Swift),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38967081/

相关文章:

java - 表格 View 刷新问题

ios - 这些是 TableView 吗?

ios - Objective-C:生成括号的问题

iOS - 圆形渐变

json - firebase 数组解析 json 总是失败

swift - 在 SwiftUI 中处理 UITextView 的 UIResponder

ios - 在 moveRowAt 之后查找 didSelectRow 的正确行

ios - 在 ios6 上运行单元测试是否有意义

ios - LGSideMenuController : Registration of several local push notifications leads to delay in screen handling

swift - 使用真实世界方位在 ARKit 场景中定向 SCNNode