Fen*_* Li 3 iphone cocoa storyboard
我有一个instantiateViewControllerWithIdentifier像这样创建的视图控制器实例:
TBSCTestController* testController = [self.storyboard instantiateViewControllerWithIdentifier: @"OTP"];
Run Code Online (Sandbox Code Playgroud)
TBSCTestController有一个IBOutlet名为的属性label,它与故事板中的标签相连:

我想修改label使用此代码的文本,但没有任何变化:
testController.label.text = @"newText";
[self.view addSubview: testController.view];
Run Code Online (Sandbox Code Playgroud)
这testController是一个有效的实例,但是label为零.我错过了什么?
你UILabel的nil原因是你已经实例化了你的控制器但它没有加载它的视图.第一次请求访问其视图时,将加载控制器的视图层次结构.所以,作为@lnafziger建议(尽管它应该没关系这个确切原因)如果您切换两行会的工作.所以:
[self.view addSubview: testController.view];
testController.label.text = @"newText";
Run Code Online (Sandbox Code Playgroud)
作为一个例子来说明这一点,即使是这个也可以:
// Just an example. There is no need to do it like this...
UIView *aView = testController.view;
testController.label.text = @"newText";
[self.view addSubview: testController.view];
Run Code Online (Sandbox Code Playgroud)
或者这一个:
[testController loadView];
testController.label.text = @"newText";
[self.view addSubview: testController.view];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1751 次 |
| 最近记录: |