gpt4 book ai didi

iphone - 处理带有静态单元格和另一个 searchResultsTableView 的 tableview

转载 作者:行者123 更新时间:2023-11-29 03:53:45 25 4
gpt4 key购买 nike

最初,我有一个主 TableView Controller ,其中包含使用 Storyboard布局的静态单元格的 TableView 。随后,我向这个 UITableViewController 添加了一个 SearchDisplayController。在我的表格 View 数据源委托(delegate)方法(例如 numberOfSectionsInTableView: 和 numberOfRowsInSection)中,我通过检查以下内容来区分我自己的表格 View (带有静态单元格)和搜索显示 Controller 的 searchResultsTableView:

if (tableView == self.searchDisplayController.searchResultsTableView)
{
// logic for searchResultsTableView;
}
else
{
// logic for my main tableView
}

据我所知,这似乎是正确的方法。但是,当我尝试对 cellForRowAtIndexPath 方法进行以下操作时,出现崩溃,并显示消息“由于未捕获的异常‘NSInternalInconsistencyException’而终止应用程序,原因:‘UITableView dataSource 必须从 tableView:cellForRowAtIndexPath 返回一个单元格:’

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
if (tableView == self.searchDisplayController.searchResultsTableView)
{
// Just want to use a default cell. There seems to be no good way of specifying a prototype cell for this in the storyboard.
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if ( cell == nil ) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
return cell;
}
else
{
// how to handle this case?
return nil;
}
}

以前,如果没有搜索显示 Controller ,我不必实现此方法,因为我的单元格是静态的。我想我的问题是,我应该如何处理混合情况(在 cellForRowAtIndexPath 以及在同一 Storyboard中指定两种单元格),其中我有一个带有动态单元格的搜索显示 Controller 表格 View 和一个带有静态单元格的表格 View ?我想这样的场景并不少见。

提前致谢!

编辑:

虽然按照第一个评论者的建议在 else 子句中调用 super 方法似乎修复了崩溃,但我遇到了另一个问题,我认为这在某种程度上是由于 tableViewController 作为静态 tableview 的委托(delegate)的固有问题造成的一种是非静态的(搜索显示结果 TableView )。

新问题:我的静态表格 View 有 2 个静态单元格。当我用超过 2 行填充搜索结果 TableView 时,我收到 NSRangeException',原因:-[__NSArrayI objectAtIndex:]:索引 2 超出范围 [0 .. 1]。

似乎 searchResultsTableView 以某种方式从我的主静态 TableView 中派生出行数(当我添加第三个静态单元格时,结果是一致的),即使委托(delegate)方法:numberOfRowsInSection 在 searchResultsTableView 的情况下被触发,并返回正确的数字。

有没有使静态表格 View 与搜索显示表格 View 配合良好的解决方法?我正在考虑将我的主要静态表格 View 转换为带有动态单元格的表格 View 。欢迎任何其他建议,谢谢!

最佳答案

我最终的解决方法是将静态表格 View 转换为具有动态单元格的表格 View 。它不漂亮,但很有效。

关于iphone - 处理带有静态单元格和另一个 searchResultsTableView 的 tableview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16759655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com