Кнопка меняет название при каждом нажатии

Я пытаюсь это сделать, но когда я нажимаю, он не меняется, он отображает только текст. Также пробовал, если еще функции, но безрезультатно.

.h

IBOutlet UIButton *poga1;
@property (nonatomic, retain)  UIButton *poga1;

.m

@synthesize poga1;

- (void)viewDidLoad
{
[super viewDidLoad];

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

}

person Edgars    schedule 02.04.2012    source источник


Ответы (2)


Попробуйте это: если вы добавили заголовок через раскадровку (интерфейс графического интерфейса), удалите его.

.h //создать действие IBOutlet. Как? Щелкните правой кнопкой мыши кнопку и перетащите ее в файл .h. Появляется всплывающее окно, и вам нужно щелкнуть раскрывающийся список и переключить его на действие // должно быть что-то вроде

- (IBAction)yourButton:(id)sender;

.m
//there will be a new function in your .m which is your button action function. 
@synthesize poga1;

- (void)viewDidLoad
{
[super viewDidLoad];

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

}

- (IBAction)Start:(id)sender
{

/* если вы хотите, чтобы это изменяло текст при каждом нажатии, вам нужен глобальный счетчик, который увеличивается при каждом нажатии кнопки. тогда у вас будет оператор if, говорящий, что если счетчик равен 1 (нажатие один раз), то установите заголовок на приветствие, если счетчик равен 7 (нажатие 7 раз), установите заголовок на до свидания. */

 [sender setTitle:@"whatever" forState:UIControlStateNormal];
}
person A.sharif    schedule 02.04.2012

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

Если вы хотите изменить заголовок, когда пользователь нажимает:

-(IBAction) onClick: (id) sender {
  [(UIButton *) sender setHighlighted:YES];
}
person Antonio MG    schedule 02.04.2012
comment
Но тогда текст будет отображаться только пока пользователь держит кнопку нажатой. Я пытаюсь изменить текст при каждом касании и остается до тех пор, пока кнопка не будет снова нажата. - person Edgars; 02.04.2012
comment
Таким образом, единственный вариант - зафиксировать действие и изменить заголовок, когда пользователь выбирает кнопку, потому что кнопка не может быть выбрана, это не переключатель - person Antonio MG; 02.04.2012
comment
Звучит логично.. Но я понятия не имею, как сделать это действие, не могли бы вы помочь? - person Edgars; 02.04.2012