2012-01-28 5 views
0

動的ラベルを更新する代わりにこのタブが読み込まれるたびに、新しいラベルが上書きされます。このコードを更新したり、ダイナミックラベルを消去してから新しいラベルを挿入するには、このコードに何を入れる必要がありますか?私はおそらく単なる一行の修正のように感じる。 requestFinishedでiosプログラムのuilabelsをviewdidで表示する適切な方法

- (void)viewDidAppear:(BOOL)animated 
    { 
     [super viewDidAppear:YES]; 
     goalArray = [[NSMutableArray alloc] init]; 
     NSURL *url = [NSURL URLWithString:@"http://localhost/goal.php"]; 
     ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url]; 
     [request setPostValue:test forKey:@"name"]; 
     [request setDelegate:self]; 
     [request startAsynchronous];   
    } 
    - (void)requestFinished:(ASIFormDataRequest *)request 
    { 
     ... 
      for (id myArrayElement in goalArray) 
      { 
       NSLog(@"y value:%i", yValue); 
       UILabel *label = [[UILabel alloc] initWithFrame: CGRectMake(0, yValue, 80, 44)]; 
       label.font = [UIFont systemFontOfSize:12]; 
       label.textColor = [UIColor blackColor]; 
       label.backgroundColor = [UIColor clearColor]; 
       label.text = myArrayElement; 
       [self.view addSubview:label]; 
       yValue += 44; 
      } 
     } 
+1

をコメントを投票するつもりなら、コメントがいいだろう – user1108720

答えて

0

:ここでは、コードの簡易版である

for (UIView *die in [self subviews]) { // clear out previous label 
    if (die.tag == 123) { 
     [die removeFromSuperview]; 
    } 
} 

をして、あなたのforループ内で、この追加:forループの前には、これを追加

label.tag = 123; //doesn't have to be 123, as long as it's an int that matches the one above. 
関連する問題