我有一个视图控制器,我有一个文本视图。我在另一个类中创建了这个视图控制器的对象,在该类中我设置了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;
}
答案 0 :(得分:1)
Viewcontrollers懒洋洋地加载视图。因此,当您设置属性txtViewDescription.text = responseString;
时,实际上是将responseString分配给nil
的变量。所以,如果你想做类似的事情,你可以使用类型NSString
创建一个新属性,并将值赋给此实例变量。而不是将responseString
分配给textview,而是将其分配给该变量,并在viewDidLoad
或您正在使用的任何选择器中获取该值。
答案 1 :(得分:0)
在引用视图ivar时,懒惰地加载XIB文件,因此在此之前你的txtViewDescription为null。尝试访问视图成员以使视图控制器加载它。
答案 2 :(得分:0)
正如@DavidNeiss所说,您需要访问该视图。尝试:
self.view = self.view; // Causes the view to load
此表格不会引起任何警告。