UITableView增加搜素框后搜不出来内容(old)

       反复检查搜索部分代码,确定不是搜索的问题。注意到乱输一段文字(比如Aaa)时会显示No Result,而输入应该搜得出内容的关键字(比如Me)后显示空白。由于我搜索结果的tableView用的cell是复用正常模式tableView的cell,怀疑是复用UITableViewCell的问题。



       跟踪cellForRowAtIndexPath方法后,发现当响应的是search功能的tableView时,得到的cell有值,但该cell中的questionLabel和answerLabel均为nil,想到应该是这类cell在初始化的时候未完全分配内存。

       再检查代码后发现以下一段UISearchDisplayController的代理方法:

#pragma mark - UISearchDisplayController delegate
- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView{
    [tableView registerClass:[QuestionListCell class] forCellReuseIdentifier:cellIdentifier];

    tableView.separatorStyle = UITableViewCellSelectionStyleNone;
    
    tableView.tag = 2;
}

       于是确定问题所在,我的QuestionListCell是用nib绘制的,只用registerClass方法来注册类应该不行,nib中自定义的label等都没有初始化。将以上代码改为:

#pragma mark - UISearchDisplayController delegate
- (void)searchDisplayController:(UISearchDisplayController *)controller didLoadSearchResultsTableView:(UITableView *)tableView{
//    [tableView registerClass:[QuestionListCell class] forCellReuseIdentifier:cellIdentifier];
    UINib *nib = [UINib nibWithNibName:@"QuestionListCell" bundle:nil];
    [tableView registerNib:nib forCellReuseIdentifier:cellIdentifier];
    
    tableView.separatorStyle = UITableViewCellSelectionStyleNone;
    
    tableView.tag = 2;
}

重新运行问题解决,如下图。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值