2017-04-26 14 views
3

私はClean-Swiftアーキテクチャ(Clean-Swift page)を使用しています。私は私が持っているViewControllerのUIのほとんどを再利用できることを知りました。たとえば、私は1つの画像をロードするために1つのViewControllerを持っています。 ViewControllerがたくさんある限り、カオスはどこからでもそれらを作成することができます。宛先を設定するSeguesなしのViewController

宛先のViewControllerをインスタンス化してからプッシュすることができますが、シーンではルータ経由でしかデータを送信できないため、Clean-Swiftの哲学を壊してしまいました。しかし、関数passDataToNextSceneは、パラメータとしてSegueを必要とします。

StoryBoardを通じて作成されたセグが目的のビューコントローラーにデータを送信して、彼女の敬意のルーターで2つのシーンを与える方法があるかどうかを知りたいと思います。

ありがとうございました。

+1

の代わりに使用segue、ルータに現在のインタラクタからデータを取得させ(データソースインタフェースを定義する)、ルータに宛先ビューコントローラ(destinationViewController.requiredData = requiredData')を設定させます。 – shallowThought

+0

今明らかになったようですが、あなたはまったく正しいです!ありがとうございました :) – Eironeia

答えて

2

代わりのセグエを使用して、ルータが現在インタラクタからデータを取得する(Interactorが適合するRouterDatasourceプロトコルを定義する)、ルータは、宛先ビューコントローラを設定させてみましょう:

// Router code 
... 
let requiredData = datasource.getRequiredData() 
destinationViewController.requiredData = requiredData 
... 
関連する問題