0

UITableView状況によってはa を表示/非表示にする必要がありtableViewます。

配列データが存在する場合は、UITableView に入力しています。しかし、配列が null の場合は、「データが見つかりません」というテキストのラベルを表示しています。これは完全に機能していますが、繰り返し実行すると、TableView のデータ ラベルに表示されます。tableView..どこが間違っているのか理解できません..を非表示にせずにテキストが表示される

これは私が書いているコードです...

if([arr count]==0)
{
    lblError.text=@"";
    lblError  = [[UILabel alloc] init];
    [lblError setFrame:CGRectMake(0,390,320,200)];
    lblError.textAlignment=UITextAlignmentLeft;
    lblError.backgroundColor = [UIColor clearColor];
    lblError.text = @"Results not found";
    lblError.textColor = [UIColor redColor];
    lblError.shadowColor = [UIColor blackColor];
    lblError.font = [UIFont fontWithName:@"Verdana-Italic" size:15];      
    [self.view addSubview:lblError];
    tableView.hidden=YES;
    [tableView removeFromSuperview];
    tableView=nil;

 }
else
{
     sections=[[NSMutableArray alloc] init];
    for(int s=0;s<1;s++)
    {
        NSMutableArray *section=[[NSMutableArray alloc] init];
        for(int i=0;i<[arr1 count];i++)
        {
            Item *item=[[Item alloc] init];
            NSString *name=[[arr objectAtIndex:i]objectForKey:@"Name"];
            item.Name=name;
            [section addObject:item];

        }
        [sections addObject:section];

    }
    tableView=[[UITableView alloc]initWithFrame:CGRectMake(0,430,320,200) style:UITableViewStylePlain];
    tableView.delegate = self;
    tableView.dataSource = self;
    [self.view addSubview:tableView];  
    [tableView release];

}
4

3 に答える 3

0

隠したい状態で試してみてください

tableName.hidden = YES;

再表示/表示のためにこれを試してください

tableName.hidden = NO;
于 2012-11-07T08:00:43.810 に答える
0

最初にtableViewのデリゲートとdataSourceをnilに割り当ててから再度作成することで解決しました

tableView.delegate = nil;
tableView.dataSource = nil;

if([arr count]==0)
{
lblError.text=@"";
lblError  = [[UILabel alloc] init];
[lblError setFrame:CGRectMake(0,390,320,200)];
lblError.textAlignment=UITextAlignmentLeft;
lblError.backgroundColor = [UIColor clearColor];
lblError.text = @"Results not found";
lblError.textColor = [UIColor redColor];
lblError.shadowColor = [UIColor blackColor];
lblError.font = [UIFont fontWithName:@"Verdana-Italic" size:15];      
[self.view addSubview:lblError];
tableView.hidden=YES;
[tableView removeFromSuperview];
tableView=nil;

}
else
{
 sections=[[NSMutableArray alloc] init];
for(int s=0;s<1;s++)
{
    NSMutableArray *section=[[NSMutableArray alloc] init];
    for(int i=0;i<[arr1 count];i++)
    {
        Item *item=[[Item alloc] init];
        NSString *name=[[arr objectAtIndex:i]objectForKey:@"Name"];
        item.Name=name;
        [section addObject:item];

    }
    [sections addObject:section];

}
tableView=[[UITableView alloc]initWithFrame:CGRectMake(0,430,320,200) style:UITableViewStylePlain];
tableView.delegate = self;
tableView.dataSource = self;
[self.view addSubview:tableView];  
[tableView release];

}
于 2012-11-08T08:34:01.230 に答える
0

メソッドにあなたを割り当てているのはなぜTableViewですか?または にをelse割り当てるだけです。次に、必要に応じて非表示または再表示します。また、削除しないでください。TableViewViewDidLoadViewWillAppearTableView

于 2012-11-07T06:50:04.910 に答える