ios - 带有 UITableViewController 的 SearchBar 包含错误数量的单元格

标签 ios swift uitableview uisearchbar

我正在像这样在我的 UITableViewController 中设置一个 UISearchController

    self.resultSearchController = UISearchController(searchResultsController: nil)
    self.resultSearchController.searchResultsUpdater = self
    self.resultSearchController.delegate = self
    self.resultSearchController.dimsBackgroundDuringPresentation = false
    self.resultSearchController.searchBar.sizeToFit()
    self.tableView.tableHeaderView = self.resultSearchController.searchBar

在我的 willPresentSearchController 中,我正在计算单元格的数量并将它们放入一个数组中,以使过滤后的单元格与原始单元格相等。

{
    print("Will Present")
    cells.removeAll()
    print(numberOfSectionsInTableView(table))
    // Iterate over all the rows of a section
    for (var row = 0; row < tableView.numberOfRowsInSection(0); row++) {
        if let cell:chatUebersichtCell = table.cellForRowAtIndexPath(NSIndexPath(forRow: row, inSection: 0)) as? chatUebersichtCell{

        cells.append(cell)

        }
    }


}

现在,对细胞进行计数,我能够得到一个等于我的 TVC 中可见细胞数量的数字,但不会更多(在 iPhone 5 上为 5 个)。

任何想法,如何改变这个?

编辑:

节数 = 1 NumberOfRows 等于单元格数(在我的示例中为 10) 在第 5 行之后,我不能再转换到我的手机了

最佳答案

你只得到 5 个单元格的原因是因为你使用相同的 View Controller 来显示你的结果( TableView 在搜索后被改变)。为了实现您的目标,您可以执行以下两项操作之一:

  1. 在搜索发生之前保留行数的引用,并针对该数字运行循环。

  1. 使用另一个 TableView Controller 来显示您的搜索结果:self.resultSearchController = UISearchController(searchResultsController: newTableViewController)

关于ios - 带有 UITableViewController 的 SearchBar 包含错误数量的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39452490/

相关文章:

ios - 我的 iOS 开发者证书或私钥在 git 中吗?

iphone - 在 iPhone 上存储信息

ios - 如何让按钮根据按下的行显示不同的视频?

ios - 如何将 View 限制在 tableView 分隔符的边缘?

ios - 在 iOS 上播放 youtube 视频

ios - 如何在 NSLog 中打印 bool 标志?

ios - 获取应用程序转为非事件状态的原因

ios - 为什么只有第一个任务退出后才调用dispatchGroup.notify?

swift - 迭代 firebase 的子项以查找与用户电话号码匹配的键

ios - UITableViewCell中如何实现滚动动画?