Viperアーキテクチャでプロジェクトのルーティングを正しく作成するにはどうすればよいですか?私はルーティングのためのファイルを作成し始めますが、私は次に何をしなければならないのか分かりません。ルーティングViperのアーキテクチャ
Iファイルワイヤフレーム、第1のコントローラとワイヤフレームプロトコルの作成:私は
// ChooseLanguageWireframe.swift
import UIKit
class ChooseLanguageWireframe: NSObject , ChooseLanguageWireframeProtocol{
var chooseLanguageScreenViewController: ChooseLanguageViewController?
var window: UIWindow?
func presentChooseLanguageViewControllerWindow() {
let chooseLanguageViewController = UIStoryboard.init(name: "ChooseLanguage", bundle: nil).instantiateViewController(withIdentifier: "ChooseLanguage") as? ChooseLanguageViewController
self.chooseLanguageScreenViewController = chooseLanguageViewController
self.window!.rootViewController = chooseLanguageScreenViewController
self.window!.makeKeyAndVisible()
}
func presentAuthScreenViewController() {
}
}
iはファイルAppDelegateでRootWireframe
// RootWireframe.swift
import UIKit
class RootWireframe: NSObject {
let chooseLanguageScreenWireframe : ChooseLanguageWireframe?
override init() {
//What i must init??
}
func application(didFinishLaunchingWithOptions launchOptions: [AnyHashable: Any]?, window: UIWindow) -> Bool {
self.chooseLanguageScreenWireframe?.window = window
return true
}
}
を作成した後:私は追加ファイルワイヤーフレームで
// ChooseLanguageWireframeProtocol.swift
import UIKit
@objc protocol ChooseLanguageWireframeProtocol {
func presentChooseLanguageViewControllerWindow()
func presentAuthScreenViewController()
}
を変更のみ
var window: UIWindow?
let rootWireframe = RootWireframe()
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
self.rootWireframe.application(didFinishLaunchingWithOptions: launchOptions as [NSObject : AnyObject]?, window: self.window!)
}
正しく動作させるために追加または変更する必要があるものはありますか?
実際には、依存関係の作成と注入が欠落しています。 Viperとその他のデカップリングされたアーキテクチャはすべて、依存性注入とコントロールの発明に基づいています。 –