这是我的问题。我在标签栏应用程序中有一个屏幕,显示一个搜索栏和一个UITableView。首次打开选项卡时,UITableView为空。输入搜索后,iPhone会根据查询获取并解析XML。
所有这一切都很好。我将XML数据添加到应该填充表的底层数组中。我已经验证数组包含数据,并且不为null。搜索后,UITableView保持空白。有什么帮助吗?
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar {
//test line
NSLog(@"%@",searchBar.text);
NSString *criteria = [[NSString alloc] initWithString:searchBar.text];
//Parse xml
NSString *uidString = @"55555";
NSString *varString = [[NSString alloc] initWithFormat:@"qryid=4&uid=%@&Criteria=%@",uidString,criteria];
NSString *urlString = [[NSString alloc] initWithString:@"http://services.auctiontrac.com/websvc.asp"];
NSString *parsingString = [[NSString alloc] initWithFormat:@"%@?%@",urlString,varString];
xmlSearch = [[XMLSearch alloc] loadXMLByURL:parsingString];
//init array for table
tableArray = [[NSMutableArray alloc] init];
carTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
[carTable reloadData];
//Add search results to UITableView
for (Car *c in [xmlSearch cars]) {
[tableArray addObject:c.make];
NSLog(@"Added item with make: %@",c.make);
}
[searchBar resignFirstResponder];
}
让我知道如果您需要更多代码来回答这个问题。
答案 0 :(得分:1)
请确保您已为dataSource
设置了UITableView
,并且在更新后,在表格视图上致电-reloadData
保存数据的数组。
调用-reloadData
将提示表视图向其数据源询问部分数,每个部分中的行数以及当前可见数据的UITableViewCell
s。我假设您的数据源方法从tableArray
获取每行的行数和数据。这意味着当您致电tableArray
时,[carTable reloadData]
必须包含最新数据。
答案 1 :(得分:0)
您是否设置了表格的数据源?试着这样做。
答案 2 :(得分:0)
您正在创建的表永远不会添加到视图中,因此永远不会出现。此外,您应该初始化表并将其添加到此方法之外的视图中,然后在搜索后立即调用reloadData。
答案 3 :(得分:0)
您必须在视图中添加carTable
即[self.view addSubview: carTable];
并设置数据源& carTable的代表 即。
carTable.datasource = self;
carTable.delegate = self;
如果您通过界面构建器提供了put tableview,则无需
carTable = [[UITableView alloc] initWithFrame:CGRectZero style:UITableViewStylePlain];
只需设置数据源&表的代表和表的出口
即。 IBoutlet UiTableView *carTable;
并在“界面”构建器中将其与您的表
连接