我使用以下代码从情节提要中实例化视图控制器:
CalloutViewController *calloutVC = (CalloutViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"CalloutViewController"];
并尝试为其分配其标题中在此处声明的属性nameLabel:
@interface CalloutViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *nameLabel;
...
@end
使用
calloutVC.nameLabel.text = @"test";
但是,分配后,该属性仍然为零。
最佳答案
这是因为IBOutlet
尚未加载。您需要创建一个NSString
属性并将其值分配给它。并在您的CalloutViewController
的viewDidLoad
中将值分配给您的IBOutlet
。
喜欢:
@interface CalloutViewController : UIViewController
@property (nonatomic, weak) IBOutlet UILabel *nameLabel;
@property (nonatomic, copy) NSString *nameValue;
...
@end
在你的
viewDidLoad
- (void)viewDidLoad
{
[super viewDidLoad];
self.nameLabel.text = self.nameValue;
...
}
并分配如下属性:
calloutVC.nameValue = @"test";