不使用Segues配置目标ViewController

3
我正在使用Clean-Swift架构(Clean-Swift页面)。我发现我可以重复使用大部分的ViewController UI。例如,我有一个ViewController用于加载单个图像。由于存在许多ViewController,从任何地方创建segue会导致混乱。
我知道您可以实例化目标ViewController,然后推送它,但这违反了Clean-Swift哲学,因为场景只能通过路由器发送数据。但是,函数passDataToNextScene需要Segue作为参数。
因此,我想知道是否有一种方法可以在StoryBoard中创建任何segue的情况下,向目标视图控制器发送数据,给出两个具有各自路由器的场景。
谢谢。

1
不要使用segue,让路由器从当前交互器获取数据(定义一个数据源接口),并让路由器配置目标视图控制器(destinationViewController.requiredData = requiredData)。 - shallowThought
现在看起来很明显,你完全正确!谢谢 :) - Eironeia
1个回答

2

不要使用segue,让路由器从当前交互器中获取数据(定义一个RouterDatasource协议,使Interactor符合该协议),并让路由器配置目标视图控制器:

// Router code
...
let requiredData = datasource.getRequiredData()
destinationViewController.requiredData = requiredData
...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接