在调用wakeFromNib之前,是否可以在容器视图中创建属性



我有一个容器视图,其中包含一个视图控制器。在调用wakeFromNib之前,我需要在此视图控制器中设置一个非UI属性。然而,嵌入segue的prepareForSegue方法直到wakeFromNib发生之后才被调用。

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

我的一个应用程序中也有类似的问题。

基本上,我有一个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"];

相关内容

  • 没有找到相关文章

最新更新