Objective c 使用搜索筛选功能创建多列表

Objective c 使用搜索筛选功能创建多列表,objective-c,json,tableview,Objective C,Json,Tableview,1.我需要在我的视图控制器中创建一个多列表来显示json数据。我在youtube上学习教程,但那些表视图教程只有一列 2.这是我的单列表视图代码 #import "inventoryVC.h" @interface inventoryVC () <UIApplicationDelegate> @property (nonatomic,strong) NSArray *inventoryarray; @property (strong, nonatomic) NSArray *sea

1.我需要在我的视图控制器中创建一个多列表来显示json数据。我在youtube上学习教程,但那些表视图教程只有一列

2.这是我的单列表视图代码

#import "inventoryVC.h"
@interface inventoryVC () <UIApplicationDelegate>
@property (nonatomic,strong) NSArray *inventoryarray;
@property (strong, nonatomic)  NSArray *searchresult;
@end

@implementation inventoryVC

@synthesize tableview = tableview;
- (void)viewDidLoad {
[super viewDidLoad];
self.inventoryarray =[[NSArray alloc] initWithObjects: @"first item" , @"second item", @"third item", @"fourth item", @"fifth item", @"sixth item", @"seventh item" ,nil];
self.searchresult =[[NSArray alloc]init];


// Do any additional setup after loading the view, typically from a nib.
}

#pragma table View methods

-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

{
if (tableView == self.searchDisplayController.searchResultsTableView) {
    return [self.searchresult count];
}
else {
    return [self.inventoryarray count];
}

}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *simpleTableIdentifier = @"CellID";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:simpleTableIdentifier];
}

if (tableView == self.searchDisplayController.searchResultsTableView) {
    cell.textLabel.text = [self.searchresult objectAtIndex:indexPath.row];
} else {
    cell.textLabel.text = [self.inventoryarray objectAtIndex:indexPath.row];
}

return cell;

}

#pragma search methods

-(void) filterContentForSearchText:(NSString *)searchText scope:(NSString *)scope
{
NSPredicate *resultPredicate = [NSPredicate
                                predicateWithFormat:@"SELF contains[cd] %@",
                                searchText];

self.searchresult = [self.inventoryarray filteredArrayUsingPredicate:resultPredicate];

[self.searchDisplayController.searchResultsTableView reloadData];
}


-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString  {

[self filterContentForSearchText:searchString scope:[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:[self.searchDisplayController.searchBar selectedScopeButtonIndex]]] ;

 return YES;
}
#导入“inventoryVC.h”
@接口清单vc()
@属性(非原子,强)NSArray*inventoryarray;
@属性(强,非原子)NSArray*搜索结果;
@结束
@实现清单VC
@综合tableview=tableview;
-(无效)viewDidLoad{
[超级视图下载];
self.inventoryarray=[[NSArray alloc]initWithObjects:@“第一项”,“第二项”,“第三项”,“第四项”,“第五项”,“第六项”,“第七项”,无];
self.searchresult=[[NSArray alloc]init];
//加载视图后,通常从nib执行任何其他设置。
}
#pragma表视图方法
-(NSInteger)表视图:(UITableView*)表视图行数节:(NSInteger)节
{
if(tableView==self.searchDisplayController.searchResultsTableView){
返回[self.searchresult count];
}
否则{
返回[self.inventoryarray count];
}
}
-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
{
静态NSString*simpleTableIdentifier=@“CellID”;
UITableViewCell*单元格=[tableView dequeueReusableCellWithIdentifier:simpleTableIdentifier];
如果(单元格==nil){
cell=[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault重用标识符:simpleTableIdentifier];
}
if(tableView==self.searchDisplayController.searchResultsTableView){
cell.textlab.text=[self.searchresult objectAtIndex:indexath.row];
}否则{
cell.textlab.text=[self.inventoryarray objectAtIndex:indexPath.row];
}
返回单元;
}
#pragma搜索方法
-(void)filterContentForSearchText:(NSString*)搜索文本范围:(NSString*)范围
{
NSPredicate*resultPredicate=[NSPredicate
predicateWithFormat:@“自身包含[cd]@”,
搜索文本];
self.searchresult=[self.inventoryarray FilteredarrayingPredicate:resultPredicate];
[self.searchDisplayController.searchResultsTableView重新加载数据];
}
-(BOOL)searchDisplayController:(UISearchDisplayController*)控制器应重新加载搜索字符串的表:(NSString*)搜索字符串{
[self-filterContentForSearchText:searchString作用域:[[self.searchDisplayController.searchBar ScopeButtonTiles]对象索引:[self.searchDisplayController.searchBar selectedScopeButtonIndex]];
返回YES;
}

3.我创建了一个名为inventoryarray的数组来保存要在表视图中显示的虚拟数据。我是否可以将json数据放入数组中?

我想最好的方法是创建一个自定义的UITableViewCell并在其中设置标签和列分隔符。

我建议您搜索“[ios][UITableView]在获得反对票之前,您必须为每行创建一个自定义uitableviewcell,并在该自定义单元格中设置标签和按钮。在我在表视图中创建自定义单元格之后,我需要做的就是告诉xcode在哪个标签上显示哪个json数据,然后检查这个问题/答案@谢谢你的建议,我来试试。顺便问一下,如何添加柱分隔符?事实上,我还不知道它的概念。