Изменить текст кнопки из xcode?

У меня есть IBAction, связанный с кнопкой в ​​моем Interface Builder.

Можно ли изменить текст на кнопке (в IB) из моего кода во время выполнения?

Ответ 1

Если у вас есть кнопка, которая подключается к действию в вашем коде, вы можете изменить заголовок без переменной экземпляра.

Например, если для кнопки установлено это действие:

-(IBAction)startSomething:(id)sender;

Вы можете просто сделать это в методе:

-(IBAction)startSomething:(id)sender {
    [sender setTitle:@"Hello" forState:UIControlStateNormal];
}

Или, если вы хотите переключить имя кнопки, вы можете создать BOOL с именем "buttonToggled" (например) и переключить имя таким образом:

-(IBAction)toggleButton:(id)sender {
    if (!buttonToggled) {
        [sender setTitle:@"Something" forState:UIControlStateNormal];
        buttonToggled = YES;
    }
    else {
        [sender setTitle:@"Different" forState:UIControlStateNormal];
        buttonToggled = NO;
    }
}

Ответ 2

UIButton *myButton;

[myButton setTitle:@"My Title" forState:UIControlStateNormal];
[myButton setTitle:@"My Selected Title" forState:UIControlStateSelected];

Ответ 3

Да. Этот метод используется в UIButton -setTitle:forState:.

Ответ 4

[myButton setTitle:@"Play" forState:UIControlStateNormal];

Ответ 5

myapp.h

{
UIButton *myButton;
}
@property (nonatomic,retain)IBoutlet UIButton *myButton;

myapp.m

@synthesize myButton;

-(IBACtion)buttonTitle{
[myButton setTitle:@"Play" forState:UIControlStateNormal];
}

Ответ 6

Другой способ переключения:

- (IBAction)signOnClick:(id)sender
{
    if ([_signOnButton.titleLabel.text isEqualToString:@"Sign off"])
    {
        [sender setTitle:@"Sign on" forState:UIControlStateNormal];
    }
    else
    {
        [sender setTitle:@"Sign off" forState:UIControlStateNormal];
    }
}

Ответ 7

Нет необходимости добавлять, если {} else {} поток управления. Инициализируйте тексты кнопок для разных состояний в конструкторе View или ViewController:

[btnCheckButton setTitle:@"Normal" forState:UIControlStateNormal];
[btnCheckButton setTitle:@"Selected" forState:UIControlStateSelected];

Затем переключите состояние кнопки на выбранное:

[btnCheckButton setSelected:YES];

Затем переключите состояние кнопки в положение Normal:

[btnCheckButton setSelected:NO];