UILabel总是零

时间:2014-06-03 07:46:20

标签: ios objective-c uiviewcontroller uilabel

我有以下问题。

这是我的代码:

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文件推送新的ViewController,并希望在我的headlineLabel中从我的数组self.categorieArray设置一个字符串。但是当SearchController被推动时,一切都很完美,但我的headlineLabel总是nil

我不明白为什么,我认为我不需要在SearchController中调用“alloc-init”,因为一切都是使用Interface Builder构建的?

1 个答案:

答案 0 :(得分:4)

您的问题是在实际加载之前更改UI。

您应该在视图控制器的ViewDidLoad中设置标签文本(在加载视图后调用它)。


在SearchViewController类中创建NSString属性,并在初始化后立即设置它。

vc.headlineText = [[self.categorieArray objectAtIndex:indexPath.row] valueForKey:@"categoryName"];

然后在SearchViewController中,您应该覆盖viewDidLoad方法:

 - (void) viewDidLoad{
       [super viewDidLoad];
       self.headlineLabel.text = self.headlineText;
    }

P.S。当然,我假设您已正确设置headlineLabel插座(来自Interface Builder)。