我正在像这样在我的 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 在搜索后被改变)。为了实现您的目标,您可以执行以下两项操作之一:
- 在搜索发生之前保留行数的引用,并针对该数字运行循环。
或
- 使用另一个 TableView Controller 来显示您的搜索结果:
self.resultSearchController = UISearchController(searchResultsController: newTableViewController)
关于ios - 带有 UITableViewController 的 SearchBar 包含错误数量的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39452490/