Как сохранить все выбранные значения кнопок и показать их на UILabel?
На самом деле я просто хочу сделать так:
Когда пользователь нажимает кнопку 1, он сохраняет свое значение в строке, а когда пользователь выбирает другую кнопку; он также сохраняет свое значение, и когда он снова отменит выбор кнопки, она должна быть удалена из строки, а также из uiLabel
Как это будет возможно?
Я должен знать все возможные способы
2 ответа
Решение
1) Объявите в своем ViewController.m
@interface ViewController ()
{
UIButton *button1;
UIButton *button2;
NSString *btn1String;
NSString *btn2String;
BOOL btn1isClicked;
BOOL btn2isClicked;
UILabel *label;
}
2) Кнопки и метка (может быть в вашем ViewDidLoad
)
btn1isClicked = NO;
btn2isClicked = NO;
//initialy set to nothing
btn1String = @"";
btn2String = @"";
//create first button
button1 = [[UIButton alloc] initWithFrame:CGRectMake(0, 50, 200, 50)];
//button 1 clicked
[button1 addTarget:self action:@selector(button1Clicked) forControlEvents:UIControlEventTouchUpInside];
[button1 setTitle:@"Button One" forState:UIControlStateNormal];
[button1 setTitleColor:[UIColor purpleColor] forState:UIControlStateNormal];
[self.view addSubview:button1];
//create second button
button2 = [[UIButton alloc] initWithFrame:CGRectMake(0, 150, 200, 50)];
//button 2 clicked
[button2 addTarget:self action:@selector(button2Clicked) forControlEvents:UIControlEventTouchUpInside];
[button2 setTitle:@"Button Two" forState:UIControlStateNormal];
[button2 setTitleColor:[UIColor blueColor] forState:UIControlStateNormal];
[self.view addSubview:button2];
//create label
label = [[UILabel alloc] initWithFrame:CGRectMake(0, 300, 320, 50)];
[label setText:@""];
[self.view addSubview:label];
3) Методы, которые нажимают кнопки
- (void) button1Clicked
{
if (!btn1isClicked)
{
//set bool to yes
btn1isClicked = YES;
[button1 setTitle:@"Button One Clicked" forState:UIControlStateNormal];
//set button 1 value
btn1String = @"btn1value";
}
else
{
//set bool to no
btn1isClicked = NO;
[button1 setTitle:@"Button One" forState:UIControlStateNormal];
btn1String = @"";
}
//update label
[label setText:[NSString stringWithFormat:@"%@ %@", btn1String, btn2String]];
}
- (void) button2Clicked
{
if (!btn2isClicked)
{
btn2isClicked = YES;
[button2 setTitle:@"Button Two Clicked" forState:UIControlStateNormal];
//set button 2 value
btn2String = @"btn2value";
}
else
{
btn2isClicked = NO;
[button2 setTitle:@"Button Two" forState:UIControlStateNormal];
btn2String = @"";
}
//update label
[label setText:[NSString stringWithFormat:@"%@ %@", btn1String, btn2String]];
}
Надеюсь это поможет
-(IBActions)buttonDidTap:(UIButton*)btn { //the target selector the button is attached to
if ([btn isSelected]) { //check if the button is selected
NSString *buttonTitleValue = btn.currentTitle; //Get the button title value
myLabel.text = buttonTitleValue; //set the UIlabel text to the title of the button
}
}