【问题标题】:SearchBar with UITableViewController contains wrong amount of cells带有 UITableViewController 的 SearchBar 包含错误数量的单元格
【发布时间】: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 行之后,我不能再投射到我的牢房了

【问题讨论】:

    标签: ios swift uitableview uisearchbar


    【解决方案1】:

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

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

    1. 使用另一个表格视图控制器来显示您的搜索结果:self.resultSearchController = UISearchController(searchResultsController: newTableViewController)

    【讨论】:

    • 尝试了第一个想法:结果是,我无法投射单元格。
    • Second 也没有这样做。我数不过 5 个单元格。
    • 你能贴出包含搜索控制器的类的代码吗? @JVS
    • 请注意,当我进行单元格搜索时,我的 tableViewController 没有改变。 (我正在将我的代码放入 willPresent....)
    猜你喜欢
    • 2013-04-24
    • 2015-08-01
    • 1970-01-01
    • 2021-02-19
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多