带有 UITableViewController 的 SearchBar 包含错误数量的单元格
Posted
技术标签:
【中文标题】带有 UITableViewController 的 SearchBar 包含错误数量的单元格【英文标题】:SearchBar with UITableViewController contains wrong amount of cells 【发布时间】:2016-09-12 14:17:50 【问题描述】:我正在像这样在我的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)。
任何想法,如何改变这个?
编辑:
NumberOfSections = 1 NumberOfRows 等于单元格数(在我的示例中为 10) 在第 5 行之后,我不能再投射到我的牢房了
【问题讨论】:
【参考方案1】:您只获得 5 个单元格的原因是因为您使用相同的视图控制器来呈现您的结果(搜索后表格视图会发生变化)。为了实现您的目标,您可以执行以下两项操作之一:
-
在搜索发生之前保留对行数的引用,并针对该数字运行循环。
或
-
使用另一个表格视图控制器来显示您的搜索结果:
self.resultSearchController = UISearchController(searchResultsController: newTableViewController)
【讨论】:
尝试了第一个想法:结果是,我无法投射单元格。 Second 也没有这样做。我数不过 5 个单元格。 你能贴出包含搜索控制器的类的代码吗? @JVS 请注意,当我进行单元格搜索时,我的 tableViewController 没有改变。 (我正在将我的代码放入 willPresent....)以上是关于带有 UITableViewController 的 SearchBar 包含错误数量的单元格的主要内容,如果未能解决你的问题,请参考以下文章
使用带有小型表格的 UITableViewController?
带有 UITableViewController 的 SearchBar 包含错误数量的单元格
带有 UIViewController(或 UITableViewController)的 tableView 属性
如何创建带有按钮的视图并将它们添加到 UITableViewController [关闭]