Ссылка на UIButton внутри представления - PullRequest
0 голосов
/ 26 марта 2012

Я загрузил UIView из nib-файла. Я написал несколько методов, которые мне удалось подключить к First Responder пера. Они отлично работают.

Теперь я должен сослаться на UIButton, который встроен в загруженный вид. Но так как это не контроллер представления / просто UIView (я полагаю?), File's Owner не обнаруживает мой IBOutlet UIButton * button в .h -файле.

Так что здесь происходит? Спасибо!

Ответы [ 4 ]

1 голос
/ 26 марта 2012

Вот пример того, как это можно сделать:

enter image description here

Щелкните правой кнопкой мыши UIButton в xib, нажмите на точку ссылки и перетащите ее на File's Owner. Как только вы отпустите щелчок, появится всплывающее окно со всеми IBOutlet, с которыми вы можете соединить элемент.

РЕДАКТИРОВАТЬ - Если он не станет синим, значит, вы не установили пользовательский класс для File's Owner! Вы можете сделать это, как показано ниже. Нажмите на File's Owner и затем на 3-ю вкладку. Установите его на свой собственный контроллер представления.

enter image description here

1 голос
/ 26 марта 2012

При перетаскивании соединений в Интерфейсном Разработчике вам не всегда нужно подключаться к Владельцу файлов.Перетащите из UIButton и поместите в UIView, который содержит его.Если у вас есть свойство IBOutlet UIButton для вашего пользовательского класса UIView - он подключится.

1 голос
/ 26 марта 2012

Есть несколько способов сделать это .. один из них ..

Установите свойство тега кнопок в построителе интерфейса, затем в коде выполните цикл по всем подпредставлениям в поисках представления с установленным вами тегом

.. Не проверял это, но должно быть что-то вроде

for (UIView *subView in [view subviews]) {
    if (subView.tag == <YOUR TAG HERE>) {
        UIButton *button = (UIButton *)subView;
    }
}

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

0 голосов
/ 26 марта 2012

Было бы легко выделить и подчинить вашу кнопку в этом конкретном представлении.Затем определите действие динамически в классе .m этого «представления», которое будет работать для вас.

[btn addTarget:self action:@selector(action:) forControlEvents:UIControlEventTouchUpInside];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...