In meinem Swift-Projekt hat ViewController # 1 eine Route von Zielen, die in einer Tabelle aufgelistet sind. Der Nutzer fährt mit und wir verfolgen, wo Nutzer die CLLocation-Inhalte verwenden. Aber der Benutzer hat jetzt von ViewController # 1 zu einem anderen Teil der App navigiert und befindet sich jetzt in ViewController # 2. Ein bestimmtes Ereignis, das ich in ViewController # 1 trage, wird ausgelöst (in meinem Beispiel hat der Benutzer das nächste Ziel auf seiner Liste erreicht). Ich brauche die App, um direkt zu ViewController # 1 zu springen, wenn dieses Ereignis ausgelöst wird. Wie kann es wahrgenommen werden, wenn sich der Benutzer in ViewController # 2 befindet?Programmgesteuert zum ersten Controller bei Ereignis des ersten Controllers zurückkehren
Antwort
NSNotificationCenter und ein Unwind Segue scheint der Weg zu sein, auf diese Weise kann diese Funktionalität wiederverwendet werden, alles, was Sie tun müssten, ist für eine bestimmte Benachrichtigung auf den relevanten View-Controller registrieren.
Etwas entlang der Linien von:
class ViewControllerOne: UIViewController {
let CallForUnwindSegue = "com.yourIdentifier.unwindToVCOne"
//- your event happens
SomethingHappened {
NSNotificationCenter.defaultCenter().postNotification(CallForUnwindSegue, object: nil)
}
}
class ViewControllerTwo: UIViewController {
let CallForUnwindSegue = "com.yourIdentifier.unwindToVCOne"
override func viewDidLoad() {
super.viewDidLoad()
//- Subscribe for notifications
NSNotificationCenter.defaultCenter().addObserver(self, #selector(self.doSomething), name: CallForUnwindSegue)
}
//- Unsubscribe for notifications
override func deinit {
NSNotificationCenter.defaultCenter().removeObserver(self)
}
func doSomething(notification: NSNotification) {
//Handle your event here.
}
}
Es gibt einen guten Abroll segue Artikel here
Danke, ich kenne den Abwicklungsbereich. Das habe ich schon mal gemacht. Die Frage wurde über Änderungen informiert, und hier kommt der NSNotification-Teil ins Spiel. Danke für das Codebeispiel - genau das habe ich gesucht. –
Kein Problem! froh, dass es geholfen hat. –
Ich weiß nicht, warum 5 Moderatoren diesen Beitrag als "zu breit" zurückgestellt haben. –
- 1. UINavigationController zur ersten Ansicht zurückkehren
- 2. Regex zum ersten 28 Tage des Monats
- 3. UIPickerView zum Anzeigen des Controllers
- 4. Prevent Ereignis nach dem ersten Ereignis-Erfassungs
- 5. Zum ersten Mal multithreader
- 6. AngularJs: Browser des Browsers aktualisieren, zum ersten untergeordneten Status wechseln?
- 7. Laravel wirft Fehler bei der Rückkehr -> ersten() in Controller
- 8. Javascript-Ereignis 'mouseenter' zweimal zum ersten Mal ausgelöst - Meteor
- 9. Oracle zum ersten Mal lernen
- 10. Qdate, ersten Tag des Monats
- 11. Uipagecontrol zuletzt zum ersten Zug
- 12. Stoppen Sie die Animation des ersten View-Controllers, wenn die zweite gestartet wird Swift-Programmierung
- 13. Android - Ermitteln des Akkuladestands bei der ersten Anfrage
- 14. Zum ersten Mal auf BASH
- 15. Aufrunden Schwimmer zum ersten Dezimalstelle
- 16. Django Installation zum ersten Mal
- 17. GWT removeHandler bei der ersten Ereignisbenachrichtigung
- 18. UserControl Ereignisse nicht zum ersten Mal
- 19. CSS-Hervorhebung des ersten Buchstabens
- 20. Fehler bei der Verwendung von Google OAUTH zum ersten Mal
- 21. Verwenden von MOQ zum Testen des Controllers
- 22. SQL, wie dies machen immer wieder zurückkehren den ersten Tag des Monats
- 23. NSDate für den ersten Tag des Monats
- 24. Fehler beim Erstellen des ersten WCF-Serviceanrufs
- 25. Gehe zur ersten Ansicht Controller in App
- 26. Symfony2 erstellen ersten Controller aber 404
- 27. Swift UISwitch funktioniert nicht zum ersten Mal
- 28. Wie Ereignisabonnement des ersten Elements in Vererbungs
- 29. Einstellung Default zum ersten und letzten Tag des laufenden Monats
- 30. Verrundung der Daten zum ersten Tag des Monats
Sie können mit 'NSNotificationCenter'and Push-Benachrichtigung und erfassen diese Benachrichtigung über alle Ihre App und gehen überall in Ihrem App zu ViewController # 1 oder Sie können zeigen, dass der Benutzer dort ist, wo er benötigt wird –
Vielen Dank! Ich werde das überprüfen. –