我需要在某些情况下显示/隐藏UITableView
。但有时它运行得非常好。但有时tableView
不会被隐藏。
如果存在数组数据我在UITableView.But中填充它如果数组为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];
}
答案 0 :(得分:0)
为什么要在TableView
方法中分配else
?您只需在TableView
或ViewDidLoad
中分配ViewWillAppear
即可。然后隐藏它或根据您的需要取消隐藏它。也不要删除TableView
。
答案 1 :(得分:0)
在您想要隐藏
的情况下尝试此操作tableName.hidden = YES;
尝试取消隐藏/显示
tableName.hidden = NO;
答案 2 :(得分: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];
}