我正在使用以下代码从故事板中实例化一个视图控制器:
CalloutViewController *calloutVC = (CalloutViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"CalloutViewController"];
并尝试分配给它的属性nameLabel,在其标题中声明:
@interface CalloutViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *nameLabel;
...
@end
使用
calloutVC.nameLabel.text = @"test";
然而,在转让后,该财产仍然是零。
答案 0 :(得分:1)
这是因为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";