В iOS, как я могу ссылаться на объект в представлении, созданном с помощью файла XIB? - PullRequest
10 голосов
/ 22 января 2011

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

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

Ответы [ 3 ]

27 голосов
/ 22 января 2011

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

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

111 Конечно, это тег, который вы присвоили метке в IB.

9 голосов
/ 22 января 2011

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

Например, в вашем FooController.m вы можете иметь это:

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

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

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

0 голосов
/ 30 июня 2014

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

...