发现数据时是否在tableview中自定义标签文本?目标c

时间:2017-10-16 06:40:12

标签: ios objective-c uitableview uilabel

我试图找到一个解决方案,但到目前为止没有运气,我可以在tableview中显示自定义标签,如果数组中没有数据,则numberOfSections返回零,否则我返回所需内容。

现在我在viewDidLoad发送一个Json请求,这样我就可以在tableview中填充数据。当加载视图时,最初我得到的是自定义标签中找不到数据,因为初始数组是空的,并且当我发送JSO请求但是没有任何效果时将文本更改为“获取数据请等待”并且我经常显示没有找到数据。

你们能告诉我我错过了什么吗?

请不要发布numberOfRows作为1的解决方案,并将部分作为1返回。

提前致谢。

2 个答案:

答案 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 ..";