从故事板实例化后,无法分配给视图控制器的属性

时间:2015-02-09 00:33:24

标签: ios objective-c cocoa

我正在使用以下代码从故事板中实例化一个视图控制器:

CalloutViewController *calloutVC = (CalloutViewController *)[self.storyboard instantiateViewControllerWithIdentifier:@"CalloutViewController"];

并尝试分配给它的属性nameLabel,在其标题中声明:

@interface CalloutViewController : UIViewController

@property (strong, nonatomic) IBOutlet UILabel *nameLabel;
...
@end
使用

calloutVC.nameLabel.text = @"test";

然而,在转让后,该财产仍然是零。

1 个答案:

答案 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";