Im Storyboard befindet sich eine Eigenschaft im Inspektorfenster mit der Aufschrift "Is Initial View Controller". Wie greife ich programmgesteuert auf diese Eigenschaft zu? Ich will es nicht ändern. Ich möchte nur überprüfen, ob der View-Controller derzeit der anfängliche View-Controller ist. Ich habe in AppDelegate Bedingungen angegeben, unter denen der View-Controller zum Root-View-Controller werden soll. Sobald es tatsächlich der Root-View-Controller ist, möchte ich etwas Code vom View-Controller selbst ausführen (aber NUR, wenn es der Root-View-Controller ist). Daher kann ich den Code nicht einfach über die ViewDidLoad-Methode ausführen. Ich möchte zuerst überprüfen, ob der View-Controller der Root-View-Controller ist, und wenn das der Fall ist, DANN möchte ich etwas Code ausführen. Irgendwelche Ideen?Wie überprüfe ich, ob der View Controller der Initial View Controller ist? (SWIFT 3)
Antwort
Der erste View-Controller aus einem Storyboard ist nicht derselbe wie der Root-View-Controller für die App. Sie können beispielsweise mehrere Storyboards mit jeweils eigenen View-Controllern verwenden. Ein Teil des Codes hat möglicherweise auch den aktuellen rootViewController geändert und unterscheidet sich damit von dem ursprünglichen View-Controller, der von der App gestartet wurde.
Um zu überprüfen, ob ein aktueller View-Controller der Wurzel-View-Controller ist, verwenden:
if self == UIApplication.shared.keyWindow?.rootViewController {
/*do stuff*/
}
Seien Sie vorsichtig, wenn Sie diesen Ort, though. Ich würde den Check in ViewWillAppear oder ViewDidAppear statt ViewDidLoad tun.
@FreddyBenson: Dies ist die richtige Antwort. Wenn es Ihre Frage beantwortet, wählen Sie es bitte als die richtige Antwort aus. – mttdbrd
- 1. Wie funktioniert der Initial View Controller?
- 2. Initial View-Controller programmgesteuert Swift
- 3. Funktioniert der Initial View Controller?
- 4. Initial View Controller und Tab View Controller
- 5. Swift Wie View-Controller richtig nutzen abtun/Wie eine Zurück-Taste mit 3 View-Controller-Controller
- 6. swift: Refreshing View-Controller
- 7. Present View-Controller in Details anzeigen Controller von Master-Details View-Controller in Swift 3
- 8. Wie View-Controller öffnen, wenn Popup geöffnet ist - swift 3
- 9. Swift 3 - Kein Mitglied Fehler nach der Instantiierung View Controller
- 10. Nachladen eines View Controller Swift
- 11. Swift View Controller Initialisierung Ausgabe
- 12. Pushing View Controller vom Kind View Controller
- 13. Swift SideMenu Show-View-Controller
- 14. Muss ich den Einstiegspunkt noch einstellen? (Initial-View-Controller)
- 15. Wie gebe ich Daten von einem View - Controller in meinen Popup - View - Controller (swift/ios)
- 16. Programmatisch erhalten Instanz der View-Controller
- 17. Segue neue View-Controller
- 18. Navigation Controller Push-View-Controller-
- 19. UITableViewCell Storyboard-Registrierung abhängig vom Initial View Controller?
- 20. iOS: Main.storyboard verweist der anfängliche View-Controller
- 21. Xcode - 2-View-Controller und 2 Swift Dateien und lesen TextField- von View Controller 1 von View Controller 2
- 22. Interagieren mit einem View-Controller von einem anderen View-Controller
- 23. iOS5 Second View Controller
- 24. Wann ist der übergeordnete/präsentierende View-Controller auf einem Modal View-Controller eingestellt?
- 25. Swift 3: PerformSegue WithIdentifier-View-Controller nicht angezeigt, keine Fehler
- 26. Warnung: Versuch, den View-Controller auf einem anderen View-Controller darzustellen, dessen View nicht in der Fensterhierarchie ist.
- 27. Moderator Modal View Controller programmgesteuert in Swift
- 28. view controller in eine andere Ansicht wechseln swift 3
- 29. Swift - Entfernen View Controller vom Navigationssystem
- 30. Model View Controller in der Qt-Anwendungsentwicklung
Ich würde diese Frage neu formulieren - was Sie wirklich suchen, ist eine Möglichkeit, zu überprüfen, was der aktuelle rootViewController ist, anstatt irgendetwas mit einem Storyboard anfängliche vc zu tun. – BJHStudios
Sie können versuchen, die Ansicht des root-Viewcontrollers zu markieren und danach das Tag/view zu überprüfen. – Dasem
@BJHStudios ja, tut mir leid, das ist nicht was ich meinte. Ich wusste nicht, was der wesentliche Unterschied zwischen diesen beiden Dingen war, aber ich suche nach einer Möglichkeit, zu überprüfen, was der anfängliche View-Controller (View-Controller, der zuerst angezeigt wird, nachdem App gestartet wurde). Müsste auch den Code innerhalb des AppDelegate ändern, weil ich einfach meine VC als rootViewController gesetzt habe, während ich es nur als die anfängliche VC einstellen wollte, die zuerst angezeigt wird. –