我试图找到一个解决方案,但到目前为止没有运气,我可以在tableview中显示自定义标签,如果数组中没有数据,则numberOfSections
返回零,否则我返回所需内容。
现在我在viewDidLoad
发送一个Json请求,这样我就可以在tableview中填充数据。当加载视图时,最初我得到的是自定义标签中找不到数据,因为初始数组是空的,并且当我发送JSO请求但是没有任何效果时将文本更改为“获取数据请等待”并且我经常显示没有找到数据。
你们能告诉我我错过了什么吗?
请不要发布numberOfRows
作为1
的解决方案,并将部分作为1
返回。
提前致谢。
答案 0 :(得分:0)
获取Json数组后检查此条件。
if( [YourJsonArray count]==0)
{
[self showalert:@"" msg:@"No data found"];
}
else
{
[self.tbleView reloadData];
}
警报方法
-(void)showalert:(NSString *)strTitle msg :(NSString *)message
{
UIAlertController * alert=[UIAlertController alertControllerWithTitle:strTitle
message:message
preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction* yesButton = [UIAlertAction actionWithTitle:@"Ok "
style:UIAlertActionStyleDefault
handler:^(UIAlertAction * action)
{
}];
[alert addAction:yesButton];
[self presentViewController:alert animated:YES completion:nil];
}
你可以在tableview中使用YourJsonArray在numberofrows或Section中根据你的要求
答案 1 :(得分:0)
以下代码供您参考。
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
NSInteger numOfSections = 0;
if ([searchArray count] )
{
self.tableView = UITableViewCellSeparatorStyleSingleLine;
numOfSections = 1;
self.tableView.backgroundView = nil;
}
else{
if ([results count])
{
self.tableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
numOfSections = 1;
self.tableView.backgroundView = nil;
}
else
{
self.noDataLabel.text = @"No Data Available";
self.noDataLabel.textColor = [UIColor blackColor];
self.noDataLabel.textAlignment = NSTextAlignmentCenter;
self.tableView.backgroundView = self.noDataLabel;
self.tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
}
}
return numOfSections;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
NSUInteger rows =0;
if(self.searchBar.text.length > 0){
rows = [searchArray count];
return rows;
}
else{
rows = results.count;
}
DLog(@"%ld",rows);
return rows;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TableViewCell * cell = [tableView dequeueReusableCellWithIdentifier:@"TableViewCell"];
if((self.searchBar.text.length > 0)){
sObject * searchObj = [searchArray objectAtIndex:indexPath.section] ;
[cell setData:searchObj];
}
else if([results count] == 0){
return cell;
}
else {
sObject * ordObj = [results objectAtIndex:indexPath.row];
[cell setData:ordObj];
}
return cell;
}
我在发送Json
请求
self.noDataLabel.text = @".. Fetching Data Please Wait ..";