Wie erstellt man gutes Routing im Projekt auf Viper-Architektur? Ich beginne Create-Datei für das Routing, aber ich verstehe nicht, was ich als nächstes tun muss.Routing Viper-Architektur
erstelle ich eine Datei Drahtgitter- erste Controller und Drahtmodell-Protokoll:
// ChooseLanguageWireframeProtocol.swift
import UIKit
@objc protocol ChooseLanguageWireframeProtocol {
func presentChooseLanguageViewControllerWindow()
func presentAuthScreenViewController()
}
in Datei Drahtgitter- ich hinzufügen:
// 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() {
}
}
Nachdem ich RootWireframe erstellen
// 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
}
}
In Datei AppDelegate i nur ändern
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!)
}
Was muss ich hinzufügen oder ändern, um richtig zu arbeiten?
Sie fehlen eigentlich nur die Erstellung und Injektion der Abhängigkeiten. Viper und alle anderen entkoppelten Architekturen basieren alle auf der Abhängigkeitsinjektion und der Erfindung der Steuerung. –