[英]UILabel is always nil
我有以下问题。
这是我的代码:
GTSearchViewController* vc = [[GTSearchViewController alloc] initWithNibName:@"GTSearchViewController"
bundle:nil];
vc.headlineLabel.text = [[self.categorieArray objectAtIndex:indexPath.row] valueForKey:@"categoryName"];
[AppDelegate().centerViewController pushViewController:vc
animated:YES];
如您所见,我尝试使用xib文件推送New ViewController,并希望从Array self.categorieArray
headlineLabel
设置一个String。 但是,当SearchController
被推入时,一切正常,但我的headlineLabel
始终为nil
。
我不明白为什么,我想我不需要在SearchController
调用“ alloc-init”,因为所有内容都是使用Interface Builder构建的?
您的问题是在实际加载之前更改UI。
您应该在视图控制器的ViewDidLoad中设置标签的文本(在加载视图之后调用)。
在您的SearchViewController类中设置NSString属性,并在初始化后立即进行设置。
vc.headlineText = [[self.categorieArray objectAtIndex:indexPath.row] valueForKey:@"categoryName"];
然后,在SearchViewController中,您应该重写viewDidLoad方法:
- (void) viewDidLoad{
[super viewDidLoad];
self.headlineLabel.text = self.headlineText;
}
PS当然,我认为您已经正确设置了headlineLabel出口(来自Interface Builder)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.