Как сохранить все выбранные значения кнопок и показать их на 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 

   }


}

См.: https://developer.apple.com/library/ios/documentation/uikit/reference/UIButton_Class/UIButton/UIButton.html

Другие вопросы по тегам