Ios 如何使用TyphonStoryboard将数据从一个ViewController传递到下一个ViewController?
我有一个故事板提供的最简单的应用程序 我们有一个Ios 如何使用TyphonStoryboard将数据从一个ViewController传递到下一个ViewController?,ios,typhoon,Ios,Typhoon,我有一个故事板提供的最简单的应用程序 我们有一个UINavigationController,以及视图控制器a和B A有一个文本字段,用户应该在其中键入自己的姓名。当用户触摸一个按钮时,它会进入B,显示“嗨,[名字]!” 如何使用台风将用户输入的姓名从A传递到B? 对于Typhone,我认为它可以让我避免使用-prepareforsgue:sender:,从DI的角度来看,这是非常有害的,因为它需要在完全不相关的视图控制器之间进行耦合。(例如,viewControllerB.nameToDis
UINavigationController
,以及视图控制器a和B
A有一个文本字段,用户应该在其中键入自己的姓名。当用户触摸一个按钮时,它会进入B,显示“嗨,[名字]!”
如何使用台风将用户输入的姓名从A传递到B?
对于Typhone,我认为它可以让我避免使用
-prepareforsgue:sender:
,从DI的角度来看,这是非常有害的,因为它需要在完全不相关的视图控制器之间进行耦合。(例如,viewControllerB.nameToDisplay=self.textField.text;
)台风的一个很好的功能是能够将程序集用作工厂接口,混合静态和运行时依赖项,从而避免创建自定义工厂的样板。此功能称为。但是,由于故事板用于发射视图控制器,因此无法使用:
- 运行时参数,因为故事板接口对此没有概念李>
- 初始化器注入,因为从故事板发射的VCs使用
initWithCoder
TyphonScopeWeakSingleton
- (Person *)storyboardModel
{
return [TyphoonDefinition withClass:[Person class]
configuration:^(TyphoonDefinition *definition) {
definition.scope = TyphoonScopeWeakSingleton;
}];
}
然后,可以将其注入俯视图控制器以及该堆栈上的任何后续子级。当这个堆栈最终弹出时,模型对象也将被清理
由于序列图像板创建的视图控制器仅适用于属性依赖项,因此您可能希望将此方法与Typhone(仍然是私有的,但在master上可用)的自动布线宏一起使用。这样可以节省创建部件注册和布线规则的时间:
@interface INFWelcomeController : UIViewController <INFWelcomeViewDelegate>
@property (nonatomic, strong) InjectedClass(Person) model;
@property (nonatomic, strong) InjectedProtocol(WebClient) client;
@end
@接口INFWelcomeController:UIViewController
@属性(非原子,强)注入类(人)模型;
@属性(非原子、强)InjectedProtocol(WebClient)客户端;
@结束
集成测试用例也将提供自动布线 谢谢你的回答,贾斯珀!我想那会管用的。MVVM可能会使它变得更复杂一点,但我可以看到它是如何解耦ViewModels的。我需要尽快试一试。