Wie kann ich Daten von Modul A an Modul B in VIPER senden? Ich verwende Router A, der Informationen für Modul B enthält, und versuche, diese Informationen an Controller B oder Moderator B zu senden. Was ist der beste Weg, dies zu tun?Senden von Daten an ein anderes Modul in VIPER nicht möglich
7
A
Antwort
4
In diesem Fall mein Workflow ist:
- Normalerweise ist die Benutzeroberfläche (
view
) im Modul A ein Ereignis startet, die das Modul B. löst - Das Ereignis der
presenter
in Modul A erreicht Diepresenter
weiß, dass es Modul ändern muss und benachrichtigtwireframe
wer weiß, wie man die Änderung vornimmt. - Die
wireframe
in Modul A In diesem Aufruf anwireframe
in Modul B benachrichtigt sendet alle benötigten Daten - Die
wireframe
in Modul B seine normale Ausführung fortgesetzt wird, die Informationen an diepresenter
wireframe
Ein in-Modul muss wissen
wireframe
B
1
Does wireframe Haben Sie einen Bezug zum Presenter? This version of VIPER which i use
Der Router über ein anderes Modul kennt und sagt Ansicht es zu öffnen. Baugruppe kombiniert alle Teile des Moduls.
2
Verwenden Delegierten Daten zwischen VIPER Module senden:
// 1. Declare which messages can be sent to the delegate
// ProductScreenDelegate.swift
protocol ProductScreenDelegate {
//Add arguments if you need to send some information
func onProductScreenDismissed()
func onProductSelected(_ product: Product?)
}
// 2. Call the delegate when you need to send him a message
// ProductPresenter.swift
class ProductPresenter {
// MARK: Properties
weak var view: ProductView?
var router: ProductWireframe?
var interactor: ProductUseCase?
var delegate: ProductScreenDelegate?
}
extension ProductPresenter: ProductPresentation {
//View tells Presenter that view disappeared
func onViewDidDisappear() {
//Presenter tells its delegate that the screen was dismissed
delegate?.onProductScreenDismissed()
}
}
// 3. Implement the delegate protocol to do something when you receive the message
// ScannerPresenter.swift
class ScannerPresenter: ProductScreenDelegate {
//Presenter receives the message from the sender
func onProductScreenDismissed() {
//Presenter tells view what to do once product screen was dismissed
view?.startScanning()
}
...
}
// 4. Link the delegate from the Product presenter in order to proper initialize it
// File ScannerRouter.swift
class ProductRouter {
static func setupModule(delegate: ProductScreenDelegate?) -> ProductViewController {
...
let presenter = ScannerPresenter()
presenter.view = view
presenter.interactor = interactor
presenter.router = router
presenter.delegate = delegate // Add this line to link the delegate
...
}
}
Weitere Tipps, lesen Sie in diesem Beitrag https://www.ckl.io/blog/best-practices-viper-architecture/
Verwandte Themen
- 1. Senden ausgewählter Listview-Daten an ein anderes Formular-Textfeld
- 2. Problem, um Daten von einem Modul in ein anderes anzuzeigen
- 3. Daten nicht senden an
- 4. Senden von AdWords-Conversion-Daten über GTM an ein anderes Konto?
- 5. Senden von Variablen in ein anderes Skript
- 6. Senden von Daten von angularjs an django
- 7. Senden von Daten an ein anderes XAML in Windows Phone 8.1 - VB.NET
- 8. iOS VIPER-Architektur, wer muss ein ganzes Modul instanziieren?
- 9. Senden von Daten an MapActivity
- 10. Nicht möglich, Daten an den Server mit Volley android senden
- 11. Senden von Daten an Worker
- 12. So senden Sie Daten von einem Fragment an ein anderes Fragment?
- 13. Übergeben von bestimmten Daten an ein anderes Viewcontrol mit prepareForSegue
- 14. getPackageName für ein anderes Modul
- 15. Nachlade-Modul, das in ein anderes Modul importiert wurde
- 16. Senden von Daten an ein Modal ohne Umleitung in nodejs
- 17. Daten an ein Django-Admin-Formular senden
- 18. Twilio senden Antworten Nachricht an ein anderes Telefon
- 19. Senden von Multipart-Form-Daten mit AFNetworking 3.0 nicht möglich
- 20. Android Studio senden Daten vom Gerät an ein anderes Gerät über die App
- 21. Senden von Daten an ein Fenster mit AutoIt Python
- 22. Senden von Formulardaten an Serverseite (Nodejs) nicht möglich mit Ajax
- 23. Senden von Daten an mein Widget (Homescreen)
- 24. Senden von Daten an eine andere Seite ohne ein Formular
- 25. Ein Formular an Facebox senden
- 26. Senden von Daten von einem Array-Objekt in ein anderes Array-Objekt
- 27. Daten von django an html senden
- 28. Senden von Daten vom Dienst an Aktivität
- 29. Daten an angularjs App in Echtzeit senden
- 30. Senden von Daten an Matlab von Android/Java
Haben Sie das "Buch der VIPER" von Rambler lesen? – Alexander