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

时间:2016-09-12 14:17:51

标签: ios swift uitableview uisearchbar

我在UISearchController这样设置UITableViewController

    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 个答案:

答案 0 :(得分:1)

您只获得5个单元格的原因是因为您使用相同的视图控制器来显示结果(搜索后表格视图会被更改)。为了实现您的目标,您可以执行以下两项操作之一:

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

    1. 使用其他表格视图控制器显示搜索结果:self.resultSearchController = UISearchController(searchResultsController: newTableViewController)