在调用awakeFromNib之前,是否可以在容器视图中使用属性?

时间:2013-06-24 23:14:16

标签: ios awakefromnib

我有一个包含视图控制器的容器视图。我需要在调用awakeFromNib之前在此视图控制器中设置非UI属性。但是,在awakeFromNib发生之后才会调用embed segue的prepareForSegue方法。

有没有办法在awakeFromNib之前将此信息传递给包含的视图控制器?

1 个答案:

答案 0 :(得分:1)

我的某个应用中存在类似的问题。

基本上,我有一个ViewController,它有一个数据模型的属性,但我不知道在我的生命周期中数据模型是否实际设置。我的解决方案是使用Key-Value Observing在设置时接收回调。

可以设置值之前的某处:

[self addObserver:self forKeyPath:@"propertyName" options: 0 context: nil];

回调:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {

   if ([keyPath isEqualToString:@"propertyName"]) {   
      //do something
   }

}

记得取消注册(我在我的dealloc中执行此操作)

[self removeObserver:self forKeyPath:@"propertyName"];