2014-04-04 1 views
0

IBOutletCollection을 사용하여 단추 배열에서 각 단추의 제목을 설정하는 방법을 아는 사람이 있습니까? 이것은 내가 시도한 것이지만, 코드는 모든 버튼의 제목을 설정합니다. 콘센트를 버튼에 연결하고 각각의 태그를 설정했습니다.IBOutletCollection에서 UIButtons의 개별 제목 설정

.h file 
@property (nonatomic, retain) IBOutletCollection(UIButton) NSArray *buttonCollection; 

.m file 
- (IBAction)switchAction:(id)sender { 

    for (UIButton *btn in buttonCollection) { 
     if (btn.tag == 0) { 
      [btn setTitle:@"1st Button" forState:UIControlStateNormal]; 
     } else if (btn.tag == 1) { 
      [btn setTitle:@"2nd Button" forState:UIControlStateNormal]; 
     } else if (btn.tag == 2) { 
      [btn setTitle:@"3rd Button" forState:UIControlStateNormal]; 
     } 
} 
+1

을 무엇을합니까 제목을? 모든 버튼이 같은 제목을 얻는다는 말입니까? – rdelmar

+0

아니요, 버튼을 누를 때마다 코드는 즉시 모든 버튼의 제목을 설정합니다. 버튼 1은 첫 번째 버튼으로 설정되고 버튼 2는 두 번째 버튼 등으로 설정됩니다. –

+0

무엇을하고 싶니? 클릭 한 버튼의 제목 만 설정합니까? – rdelmar

답변

1

가 for 루프 제거하기,

- (IBAction)switchAction:(UIButton *)sender { 

    if (sender.tag == 0) { 
      [sender setTitle:@"1st Button" forState:UIControlStateNormal]; 
    } else if (sender.tag == 1) { 
      [sender setTitle:@"2nd Button" forState:UIControlStateNormal]; 
    } else if (sender.tag == 2) { 
     [sender setTitle:@"3rd Button" forState:UIControlStateNormal]; 
} 
+0

우수! 고맙습니다. 완벽하게 작동합니다 :-) –

0

이 시도 : 당신은 단지 당신이 클릭 한 버튼의 제목을 설정하려면

for (int i = 0; i < [buttonCollection count]; ++i) 
{ 
    [((UIButton*)self.buttonCollection[i]) setTitle: [NSString stringWithFormat: @"%d button", i] forState: UIControlStateNormal]; 
} 
+0

빠른 답장을 보내 주셔서 감사합니다. 그러나 원하는 것은하지 않습니다. . 위의 의견을 참조하십시오. 미안하지만 내가 너무 분명하지 않았다면. 이제 작동합니다 : 두 번째 대답 참조 :) –