IBOutlet не устанавливается вне didLoad - PullRequest
0 голосов
/ 06 мая 2011

У меня есть контроллер представления, на котором у меня есть текстовое представление. Я создаю объект этого контроллера представления в другом классе, и в этом классе я устанавливаю текст IBOutlet textView.Затем я помещаю этот объект контроллера вида на свой контроллер навигации.

Но текст не устанавливается. Я отладил его и обнаружил, что объект текстового представления показывает 0x0. Если я установил текст в didLoad, тоэто было установлено. Кроме того, я попытался сначала нажать представление, а затем вызвать метод, чтобы изменить текст, но все равно он показывает 0x0.

Может кто-нибудь дать мне знать, если я что-то делаю неправильно?*

LookUpReference *lookUp = [[LookUpReference alloc]init];
[self.navigationController pushViewController:lookUp animated:NO];
[lookUp loadViewWithResponse:responseString];

метод loadViewWithResponse: -

-(void) loadViewWithResponse:(NSString *)responseString
{
    txtViewDescription.text=responseString;
}

Ответы [ 3 ]

1 голос
/ 06 мая 2011

Viewcontrollers загружает свой вид лениво.Поэтому, когда вы устанавливаете свойство txtViewDescription.text = responseString;, вы фактически присваивает responseString переменной, равной nil.Поэтому, если вы хотите сделать что-то подобное, вы можете, например, создать новое свойство с типом NSString и присвоить значение этой переменной экземпляра.и вместо присвоения responseString текстовому представлению присвойте его этой переменной, и в вашем viewDidLoad или любом другом используемом вами селекторе получите значение из этого.

0 голосов
/ 06 мая 2011

Как сказал @DavidNeiss, вам нужно получить доступ к представлению.Попробуйте:

self.view = self.view; // Causes the view to load

Эта форма не вызовет никаких предупреждений.

0 голосов
/ 06 мая 2011

Файл XIB загружается лениво при обращении к представлению ivar, поэтому ваше txtViewDescription будет нулевым до тех пор. Попытайтесь получить доступ к члену представления, чтобы заставить контроллер представления загрузить его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...