2010-12-19 68 views
0


我有一个模式视图,其中只包含o按钮和uilabel。
按钮关闭该模式诉:UILabel将不会第一次更新

- (IBAction) close { 
    [self dismissModalViewControllerAnimated:YES]; 
} 


现在,我创建了这个观点:

nw = [[NewsViewController alloc] initWithNibName:@"NewsViewController" bundle:nil]; 
nw.modalInPopover = YES; 
nw.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 

[nw setValues:@"asdasd"]; 

[self presentModalViewController:nw animated:YES]; 

一切ok。

它正确加载,但uilabel值不显示正确的文本标签。

怎么可能?
第二次点击,该值被正确设置好的...

这是setValues方法FUNC:

- (void) setValues:(NSString*)val { 
    [firstLabel setText:val]; 
} 

调试,它表明第一次的UILabel为0x0 ......这是一个问题,但第二次是正确创建并设置了该值。

任何想法解决?

alberto。

回答

0

在第一次拨打setValues时,NewsViewController可能尚未加载视图。要确认,请在[ns setValues:@"asdasd"];-[viewDidLoad]方法NewsViewController之前设置断点。

要解决此问题,您可以在NewsViewController中为文本添加实例变量。然后在-[setValues:]中设置实例变量,并从该实例变量中设置标签文本的-[viewDidLoad]方法。

+0

是的,我添加了一个实例变量,现在一切都好!谢谢。 – elp 2010-12-19 19:45:38

0

您还可以设置文字的主线程

dispatch_async(dispatch_get_main_queue(), ^{ 
     firstLabel.text = currentEventsString; 
}); 
1

上也许你设置viewDidLoad标签文本,直到视图练完加载本身。

尝试投入viewDidAppearviewWillAppear

相关问题