В 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.