UILabel不会第一次更新

时间:2010-12-19 19:28:40

标签: objective-c text uilabel


我有一个模态视图,只包含o按钮和uilabel 按钮关闭模态v:

- (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];
一切都好。

它正确加载但是uilabel值没有显示正确的文本标签。

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

这是setValues func:

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

调试,它首次显示UILabel 0x0 ......这是一个问题,但第二次正确创建并设置了值。

有任何想法要解决吗?

阿尔贝托。

3 个答案:

答案 0 :(得分:1)

可能你在viewDidLoad中设置了标签文字,直到视图加载完毕为止。

请改为放入viewDidAppearviewWillAppear

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您还可以在主线程上设置文字

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