В iOS, как мне ссылаться на объект в представлении, создаваемом с помощью xib файла?

У меня есть контроллер представлений, который создается в appDelegate и нажимается на контроллер навигации. Представление контроллера просмотра создается с помощью xib файла. Файл xib помещает UILabel в представление (между прочим). Теперь мне нужно установить свойство текста ярлыка программно, но я не вижу, как получить ссылку на него. Как ссылаться на объект метки?

Я использую xcode 3.2.5 и создаю iPad-приложение.

Ответ 1

Помимо IBOutlets, вы также можете установить свойство тега на ярлыке в IB. Затем, когда вам это нужно, вы можете сделать:

UILabel *label = (UILabel *)[self.view viewWithTag:111];

111, конечно, являющийся тегом, который вы назначили метке в IB.

Ответ 2

Вы делаете это с помощью так называемой "розетки". Вы определяете их в своем контроллере, четко обозначаете их как IBOutlet, а затем соединяете их в Interface Builder с вашим владельцем файла (или другим объектом делегата, созданным в IB).

Например, в вашем FooController.m у вас может быть следующее:

@interface FooController ()
@property (nonatomic, weak) IBOutlet UILabel* fooLabel;
@end

Затем вы выберете свой ярлык и либо перетащите его из него в владельца файла, либо перейдите на вкладку его соединений, и перетащите его из + в ссылку на выход, владельцу файла и выберите fooLabel.

ОБНОВЛЕНИЕ: образец кода изменен, чтобы отразить современный способ обработки этого случая.

Ответ 3

[self.view viewWithTag:NUMBER_OF_TAG]; делает трюк. Но помните, что если вы хотите получить доступ к представлению, вы должны сделать это на события viewWillAppear или viewDidAppear.