我有UITableview
s根据所选行设置另一个视图UILabel
s。
在任何行的第一个选择中,视图加载空标签(没有设置),一旦我向后导航,然后当我选择一行之后它完全加载。
为什么第一次选择时没有设置标签?
我有以下代码:
NSLog(@"object at index 0 is %@", [tempArray2 objectAtIndex:0]);
self.categoryQuoteViewController.aLabel.text = [tempArray2 objectAtIndex:0];
self.categoryQuoteViewController.bLabel.text = [tempArray2 objectAtIndex:1];
NSLog(@"the first label is %@",self.categoryQuoteViewController.aLabel.text);
第一个NSLog
打印该值,然后在设置后直接打印并打印标签的值为null
。
答案 0 :(得分:1)
问题是categoryQuoteViewController
的视图是懒惰加载的,这意味着在您首次在屏幕上显示视图之前,不会加载任何标签。因此,当您第一次访问categoryQuoteViewController.aLabel
时,它将是nil
。
您可以通过访问视图控制器上的view
属性来强制加载视图,如下所示:
/* Force the view to load so we can set the labels */
categoryQuoteViewController.view;