Вызываете метод, который также используется UIButton? - PullRequest
3 голосов
/ 27 августа 2009

У меня есть небольшое приложение для iPhone, в котором я создал кнопку с некоторой функциональностью. Мой вопрос: как я могу вызвать эту кнопку, не нажимая ее?

Любая помощь будет оценена!

Спасибо

Ответы [ 3 ]

4 голосов
/ 28 августа 2009

Если вы хотите активировать любую цель, к которой подключена кнопка, вы можете позвонить:

[button sendActionsForControlEvents:UIControlEventTouchUpInside];

(TouchUpInside - это событие, к которому вы обычно подключаете действие кнопки). Таким образом, если для какой-либо кнопки добавляются или изменяются другие цели (например, для отладки), вам не нужно изменять свой код.

Этот метод используется в UIControl, от которого наследуется UIButton, поэтому вы могли пропустить его с первого взгляда ...

2 голосов
/ 27 августа 2009

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

Пример:

- (void) btnFunction {
  NSLog (@"test");
}

...

UIButton *btn1 = [UIButton buttonWithType:UIButtonRoundedRect];
// other code to set up button goes here
[btn1 addTarget:self action:@selector(btnFunction) forControlEvents:UIControlEventTouchUpInside];

Вы также можете вызвать функцию самостоятельно:

[self btnFunction];
1 голос
/ 27 августа 2009

Ваша кнопка не должна иметь функциональности, она должна просто отправлять сообщение своей цели (или вызывать метод, или вызывать функцию ...).

Вы можете сами отправить это сообщение этой цели.

например. Целевой выход вашей кнопки подключен к IBAction на вашем контроллере. Этот IBAction - просто метод формы:

- (void) doSomething:(id)sender

В вашем собственном коде выполните:

[controller doSomething:self];

Это точно так же, как ваша кнопка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...