Попробуйте сохранить все ваши кнопки в массиве.Когда кто-то нажал, прокрутите массив и проверьте, выбрана ли каждая кнопка.Если кнопка выбрана, установите для нее значение not, затем выйдите из цикла.После цикла установите кнопку, которая была нажата (sender
) для выбора.
Не проверенный пример кода:
- (void) viewDidLoad {
self.radioBtn = [UIButton buttonWithType: UIButtonTypeCustom];
[self.radioBtn setFrame:CGRectMake(40,38,20,20)];
[self.radioBtn setImage: [UIImage imageNamed:@"radio-button"]forState:UIControlStateNormal];
[self.radioBtn setImage: [UIImage imageNamed:@"radio-button-select"]forState: UIControlStateSelected];
[self.radioBtn addTarget:self action:@selector(myButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
[self.radioBtn setSelected:YES];
[self.view2 addSubview:self.radioBtn];
self.radioBtn2 = [UIButton buttonWithType: UIButtonTypeCustom];
[self.radioBtn2 setFrame:CGRectMake(40,38,20,20)];
[self.radioBtn2 setImage: [UIImage imageNamed:@"radio-button"]forState:UIControlStateNormal];
[self.radioBtn2 setImage: [UIImage imageNamed:@"radio-button-select"]forState: UIControlStateSelected];
[self.radioBtn2 addTarget:self action:@selector(myButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
[self.radioBtn2 setSelected:NO];
[self.view2 addSubview:self.radioBtn2];
self.radioBtn3 = [UIButton buttonWithType: UIButtonTypeCustom];
[self.radioBtn3 setFrame:CGRectMake(40,38,20,20)];
[self.radioBtn3 setImage: [UIImage imageNamed:@"radio-button"]forState:UIControlStateNormal];
[self.radioBtn3 setImage: [UIImage imageNamed:@"radio-button-select"]forState: UIControlStateSelected];
[self.radioBtn3 addTarget:self action:@selector(myButtonTapped:) forControlEvents:UIControlEventTouchUpInside];
[self.radioBtn3 setSelected:NO];
[self.view2 addSubview:self.radioBtn3];
self.buttonArray = @[self.radioBtn, self.radioBtn2, self.radioBtn3];
}
- (void) myButtonTapped:(UIButton*) sender {
for(UIButton *btn in self.buttonArray) {
// Only one button should be selected at a time, so once we find it,
// set it to not be selected then break from the loop
if(btn.isSelected){
[btn setSelected:NO];
break;
}
}
// set the button that was tapped to be selected
[sender setSelected:YES];
}
Отправить текст одной кнопки другой кнопке довольно просто.
[btn2 setTitle:[btn1 titleForState:UIControlStateNormal] forState:UIControlStateNormal];