Доступ к объекту/управлению IB из метода класса

Доступны ли объекты/элементы управления, созданные с помощью IB, из метода класса?

@Некто:

@interface CopyController : UIViewController
{
    UIActivityIndicatorView *myActivity;
}

@property (nonatomic, retain) IBOutlet UIActivityIndicatorView *myActivity;
+(void) activityIndicator:(BOOL)flag;

@end

Эта реализация в .m не будет разрешена, ошибка была "Переменная экземпляра" myActivity "доступна в методе класса".

+(void)activityIndicator:(BOOL)flag
{
    if (flag)
        [myActivity startAnimating];
    else
        [myActivity stopAnimating];
}

person user523234    schedule 07.09.2011    source источник
comment
Прежде чем задавать подобные вопросы, уделите больше времени документации, предоставленной Apple. Это основы работы с IB, и если вы спрашиваете об этом, вам нужно продолжать читать, чтобы действительно изучить инструмент, прежде чем продолжать свой проект.   -  person Philip Regan    schedule 07.09.2011
comment
@Phil Его вопрос касается объема, а не того, как подключить розетку.   -  person Beltalowda    schedule 07.09.2011
comment
@Thuggish Nuggets: Спасибо. Филипп Риган: снимите оценку, если вы довольны!!!!   -  person user523234    schedule 07.09.2011


Ответы (2)


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

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

person Beltalowda    schedule 07.09.2011

Да, они доступны.

Вы должны добавить @property IBOutlet ib_object_class *ib_object_name;, открыть настройки этого объекта в IB и установить эталонный выход на File's Owner, выбрав ib_object_name в выпадающем меню.

Полное объяснение можно найти, например, здесь: Создание и подключение розетка

person Nekto    schedule 07.09.2011
comment
Я знаю об этом процессе, мой вопрос был о том, доступен ли он в методе класса. Именно там я столкнулся с проблемой. Когда я реализую мгновенный метод или частный метод, я могу получить доступ к этим объектам IB, но в методе класса он недоступен. - person user523234; 07.09.2011
comment
Тогда опишите правильно свою проблему, выложите код, опишите ошибки. Я ответил на ваш текущий вопрос: да, вы можете. - person Nekto; 07.09.2011
comment
Пожалуйста, смотрите мое редактирование исходного вопроса. Я не смог вставить код в этот комментарий. - person user523234; 07.09.2011