我有一个模态视图,只包含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 ......这是一个问题,但第二次正确创建并设置了值。
有任何想法要解决吗?
阿尔贝托。
答案 0 :(得分:1)
可能你在viewDidLoad
中设置了标签文字,直到视图加载完毕为止。
请改为放入viewDidAppear
或viewWillAppear
。
答案 1 :(得分:0)
在第一次调用setValues时,NewsViewController
可能尚未加载其视图。要确认,请在[ns setValues:@"asdasd"];
之前和-[viewDidLoad]
NewsViewController
方法中设置断点。
要解决此问题,您可以在NewsViewController
中为文本添加实例变量。然后在-[setValues:]
中设置实例变量,并从该实例变量中设置其-[viewDidLoad]
方法中的标签文本。
答案 2 :(得分:0)
您还可以在主线程上设置文字
dispatch_async(dispatch_get_main_queue(), ^{
firstLabel.text = currentEventsString;
});