2012-08-06 5 views
0

Я хотел бы понять процесс объявления кнопки.Объявление процесса кнопки

@interface MerdaViewController : UIViewController{  
    IBOutlet UIButton *button; 
} 

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

@end 

Зачем нам эти шаги?

Всегда ли это требуется?

Большое вам спасибо.

Alex.

+3

Итак, вы думаете, что я не понимаю французского слова «Мерда», что означает «Шитти»? Хорошая попытка. :-) –

+0

@ H2CO3 LOL +1 для этого комментария – AAV

+0

Я просто хотел назвать его как полезную функцию в своем коде, и я забыл изменить имя, чтобы отправить свой вопрос ... Извините. И это не на французском, это каталанский;) (одно и то же слово для него) – alex

ответ

0

Чтобы создать кнопку, вам просто нужна эта линия.

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

Чтобы создать кнопку действия

-(IBAction)doSomething:(id)sender; 

Просто хотел бы добавить еще один пункт:

Розетки обычно должны быть слабыми/назначения, за исключением тех из файла владельца к началу -уровневые объекты в файле nib (или в iOS, сценае раскадровки), которая должна быть сильной/удержаться

+0

Если это не тот объект верхнего уровня, который вы загружаете сами, обычно это «присваивание» для IBOutlets - желательно «слабый» с ARC – Abizern

0
  1. по крайней мере в относительно новых версиях XCode, вам не нужно объявлять эту переменную экземпляра. Это автоматически позаботится.

  2. Вам необходимо @property, чтобы вы могли позвонить self.button и сделать все, что вам нравится. IBOutlet сообщает XCode, что это элемент в вашем построителе интерфейса, поэтому вы можете подключить его с помощью той визуальной кнопки, которую вы добавили в IB.

  3. чаще всего я нахожусь фактически объявлением -(IBAction)buttonAction:(id)sender;, а не IBOutlet. Таким образом, когда вы нажимаете эту кнопку, автоматически запускается метод IBAction.

+0

Там есть много примеров, когда вы объявляете «IBOutlet» вместо «IBAction». Как простой пример, возможно, включенное состояние кнопки зависит от других действий, которые пользователь делает на экране, после чего вам понадобится ссылка на эту кнопку, чтобы установить 'button.enabled = NO;' –

+0

, что совершенно верно. всякий раз, когда вам нужна ссылка на 'self.button', вы объявляете' IBOutlet'. Но если это просто стандартная вещь, то просто «IBAction» будет делать трюк. – aforaudrey

Смежные вопросы