2017-04-26 35 views
3

我使用清潔斯威夫特架構(Clean-Swift page)。我看到我可以重用大部分ViewController UI。例如,我有一個ViewController用於加載單個圖像。直到有很多的ViewController的這是一個混亂從各地創建賽格到他們。配置目的的ViewController沒有塞格斯

我知道,你可以實例化目標的ViewController,然後推動它,但它brokes清理斯威夫特的理念,由於場景只能通過路由器發送數據。但函數passDataToNextScene需要Segue作爲參數。

所以我想知道是否有一種方式,讓兩個場景與她respectives路由器,通過故事板創建的任何SEGUE將數據發送到目的地的ViewController。

謝謝。

+1

代替使用的SEGUE,讓路由器獲取從當前交互器的數據(定義數據源接口),並讓路由器配置的目的地視圖控制器('destinationViewController.requiredData = requiredData')。 – shallowThought

+0

現在看來很明顯,你是完全正確的!謝謝 :) – Eironeia

回答

2

代替使用SEGUE的,讓路由器獲取從當前交互器的數據(定義一個RouterDatasource協議Interactor符合),並讓路由器配置目標視圖控制器:

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