Я заполняю таблицу, состоящую из 4 меток в каждой строке при нажатии кнопки динамически.
Когда я пытаюсь динамически вставить разные данные в одну и ту же таблицу, она не сбрасывает старые данныеи, следовательно, старые данные перекрываются с новыми данными.
Какие изменения мне нужно внести?
* .m
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
{
return 1;
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if(tableView==myTableView){
return [tableData count];
}
else if(tableView==aTableView){
return [a count];
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
if(tableView==myTableView){
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:MyIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:MyIdentifier] autorelease];
}
cell.textLabel.font=[UIFont fontWithName:@"Arial" size:12.0];
cell.textLabel.text = [tableData objectAtIndex:indexPath.row];
cell.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
return cell;
}
else if(tableView==aTableView){
static NSString *CellIdentifier=@"CellIdentifier";
static NSInteger StateTag = 1;
static NSInteger CapitalTag = 2;
static NSInteger StateTag1 = 3;
static NSInteger StateTag2 = 4;
UITableViewCell *cell=[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell == nil){
cell=[[[UITableViewCell alloc]initWithFrame:CGRectZero reuseIdentifier:CellIdentifier]autorelease];
CGRect frame;
frame.origin.x = 10;
frame.origin.y = 5;
frame.size.height = 35;
frame.size.width = 80;
UILabel *capitalLabel = [[UILabel alloc] initWithFrame:frame];
capitalLabel.tag = CapitalTag;
[cell.contentView addSubview:capitalLabel];
frame.origin.x += 135;
UILabel *stateLabel = [[UILabel alloc] initWithFrame:frame];
stateLabel.tag = StateTag;
[cell.contentView addSubview:stateLabel];
frame.origin.x += 100;
UILabel *stateLabel1 = [[UILabel alloc] initWithFrame:frame];
stateLabel1.tag = StateTag1;
[cell.contentView addSubview:stateLabel1];
frame.origin.x += 100;
UILabel *stateLabel2 = [[UILabel alloc] initWithFrame:frame];
stateLabel2.tag = StateTag2;
[cell.contentView addSubview:stateLabel2];
capitalLabel = (UILabel *) [cell.contentView viewWithTag:CapitalTag];
stateLabel = (UILabel *) [cell.contentView viewWithTag:StateTag];
stateLabel1 = (UILabel *) [cell.contentView viewWithTag:StateTag1];
stateLabel2 = (UILabel *) [cell.contentView viewWithTag:StateTag2];
capitalLabel.text=[a objectAtIndex:indexPath.row];
stateLabel.text = [b objectAtIndex:indexPath.row];
stateLabel1.text = [c objectAtIndex:indexPath.row];
stateLabel2.text = [d objectAtIndex:indexPath.row];
}
return cell;
}
}
-(IBAction)btnClicked:(id)sender{
NSMutableDictionary *cells = (NSMutableDictionary*)[self.aTableView valueForKey:@"_reusableTableCells"];
[cells removeAllObjects];
[self gainer];
}
-(IBAction)btnClicked1:(id)sender {
[self looser];
}
-(void)gainer{
arr1=[[NSMutableArray alloc]init];
arr2=[[NSMutableArray alloc]init];
a=[[NSMutableArray alloc]init];
b=[[NSMutableArray alloc]init];
c=[[NSMutableArray alloc]init];
d=[[NSMutableArray alloc]init];
[a removeAllObjects];
[b removeAllObjects];
[c removeAllObjects];
[d removeAllObjects];
//POPULATING OF ARRAYS(a,b,c,d) IS DONE HERE. NOW using ReloadData to populate table.
[self.aTableView reloadData];
}
-(void)looser{
//SIMILAR LOGIC AS DEFINED IN gainer() method
}
- (void)viewDidLoad {
myTableView = [[UITableView alloc]initWithFrame:CGRectMake(200, 31, 310,170)];
myTableView.delegate = self;
myTableView.dataSource = self;
[self.view addSubview:myTableView];
//code for fetch
arr1=[[NSMutableArray alloc]init];
arr2=[[NSMutableArray alloc]init];
a=[[NSMutableArray alloc]init];
b=[[NSMutableArray alloc]init];
c=[[NSMutableArray alloc]init];
d=[[NSMutableArray alloc]init];
aTableView = [[UITableView alloc] initWithFrame:[[UIScreen mainScreen]applicationFrame] style:UITableViewStyleGrouped];
aTableView.dataSource = self;
aTableView.delegate = self;
aTableView.frame = CGRectMake(100, 150, 200, 300);
aTableView.tag=1;
[self.view addSubview:aTableView];
[super viewDidLoad];
}
ЛЮБЫЕ ПРЕДЛОЖЕНИЯ?