Ich versuche, ein Registrierungsformular mit mehreren Ansichten, aber nur eine Ansicht Controller zu machen. Nachdem ich zur nächsten Ansicht gegangen bin, schreibe ich die Eingabe in eine Struktur, die später an den Server gesendet wird. Das Problem, mit dem ich konfrontiert bin, ist, dass die VC beim Eingeben der neuen Ansicht neu initialisiert wird und daher die Benutzerstruktur ebenfalls neu initialisiert wird. Gibt es eine Möglichkeit, mit mehreren ViewControllern herumzukommen?Single-View-Controller für mehrere Ansichten
Antwort
Es klingt, als ob Sie einen Navigationscontroller verwenden, um neue Kopien desselben View Controllers zu übertragen, wenn Ihr Benutzer von der Ansicht zur Anzeige wechselt.
Was ich empfehlen, ist Ihre einzige Ansicht Controller (die eine Inhaltsansicht hat) und mehrere Unterklasse UIViews.
Wenn der Benutzer auf "Weiter" klickt, um zur nächsten Ansicht zu gelangen, animieren Sie, die alte Ansicht aus dem Weg zu räumen und die neue in Position zu bringen.
Checkout "Beispiel II" von this tutorial. Verwenden Sie anstelle von Bildansichten Ihre eigenen benutzerdefinierten (untergeordneten) UIViews.
Here is a related question mit mehr Beispielcode.
Wenn der einzige Grund für die Verwendung eines Ansichtscontrollers darin besteht, dass Sie Ihre Daten auf den verschiedenen Bildschirmen, die Sie darstellen möchten, beibehalten können, sollten Sie Ihre Daten außerhalb der View-Controller-Klasse speichern. Zum Beispiel durch eine andere Klasse mit einer gemeinsamen Instanz mit:
class DataContainer {
let sharedInstance = DataContainer()
var someString: String?
}
Sie jetzt die gleichen Daten von jedem View-Controller (ohne die Daten zu verlieren, wenn zu einer anderen Ansicht Controller bewegt) wie folgt zugreifen können:
if let someString = DataContainer.sharedInstance.someString {
print(someString)
}
Sie benötigen einen übergeordneten Ansichts-Controller, der den childViewController enthält, der zu Ihrem Registrierungspfad gehört. Hier ist ein einfaches Tutorial, wie Sie diese Funktion (in diesem Fall das Hinzufügen eines Swipe Gesture Recognizer zur Navigation) von Vea Software erreichen können.
wie dies alle Ihre childViewController können ihre eigenen benutzerdefinierten Klasse für Logik haben, und Sie müssen nicht einen Übergang zwischen ihnen laufen ... scrollen Sie einfach miteinander.
- 1. mehrere Ansichten Verzeichnisse für eine Express.js App
- 2. Speicherverwaltung für mehrere Ansichten in iOS
- 3. iphone mehrere Ansichten
- 4. Mehrere Ansichten, mehrere lösen aber für einen Controller in AngularJS
- 5. Mehrere Ansichten erstellen
- 6. Android UI Mehrere Ansichten
- 7. WPF CollectionViewSource Mehrere Ansichten?
- 8. Schienen bilden mehrere Ansichten?
- 9. MVC - Gleiche URL, mehrere Ansichten
- 10. iOS. OpenGL. Mehrere Ansichten gleichzeitig
- 11. Angular UI-Router mehrere Ansichten
- 12. Unwind segue - Zurück mehrere Ansichten
- 13. mehrere Ansichten in einem Layout
- 14. ConstraintLayout: mehrere Ansichten gleichzeitig animieren
- 15. Mit $ routeProvider verwalten mehrere Ansichten
- 16. Android: Einzelne Aktivität, mehrere Ansichten
- 17. Verschachtelt und mehrere benannte Ansichten
- 18. Mehrere Ansichten in einem UIWindow
- 19. UI-Router: benannte Ansichten (mehrere) Ansichten, alles entkoppelt halten?
- 20. Angular Ui-Router: verschachtelte Ansichten vs mehrere Ansichten
- 21. Angular ui Router mehrere benannte Ansichten für alle Staaten
- 22. AngularJS gleichen Controller für mehrere Ansichten in einzelnen Zustand mit
- 23. Wie erstelle ich mehrere Ansichten für verschiedene Benutzer nach Rolle?
- 24. Django Urls, Ansichten, regex Konfiguration für mehrere Parameter
- 25. Reagieren, asynchrones Laden für mehrere Abschnitte/Ansichten mit verschiedenen Komponenten
- 26. Mehrere ng-Ansichten für die Homepage in angularjs
- 27. Ein Domain-Modell, mehrere JSON-Ansichten
- 28. Codeigniter mehrere Ansichten in einer Ansicht
- 29. Mehrere benannte Ansichten werden nicht angezeigt
- 30. Mehrere benannte Ansichten in UI Router
Wie gehen Sie zur nächsten Ansicht? –
Durch Auslösen eines Segments – Raoul
Segues sind immer von einer Ansicht Controller zu einem anderen. Sie müssen Ihre einzelne VC verwenden und benutzerdefinierte animierte Übergänge wie die unten beschriebenen durchführen. –