我正在从TyphoonStoryboard加载视图控制器,并且该类的定义工作正常,注入了几个属性没有问题。但是其中一个属性是一个视图,它本身有一个委托属性,我想成为视图控制器实例。当视图设置委托属性时,它会尝试创建视图控制器的新实例,而不是使用故事板创建的实例。如何使delegate属性使用视图控制器的当前实例?我的定义看起来像这样:
- (id)viewController
{
return [TyphoonDefinition withClass:[MyViewController class]
configuration:^(TyphoonDefinition *definition) {
[definition injectProperty:@selector(view) with:[self myView]];
}];
}
- (id)myView
{
return [TyphoonDefinition withClass:[MyView class]
configuration:^(TyphoonDefinition *definition) {
[definition injectProperty:@selector(delegate)
with:[self viewController]];
}];
}
从我所看到的视频控制器永远不会被用作引用,因为它没有在任何地方添加共享引用,Typhoon别无选择,只能实例化一个新的?
答案 0 :(得分:0)
在Typhoon 2.3.4之前不支持此功能。在此版本之前,在Typhoon之外创建的对象不参与范围池。因此,无法使用Typhoon将delegate
连接到viewController
,但您可以在Interface Builder中连接或使用performAfterInjections
回调。
从2.3.4开始,在Typhoon之外实例化但随后注入的对象参与范围池,因此循环依赖关系按预期工作。