Frage

Ich schreibe eine Anwendung, wo Sie brauchen modal Login-Bildschirm zu zeigen, und die App verfügt über eine Tab-Leiste.

Ich habe Tab-Leiste hinzugefügt direkt an den UIWindow. Um es zu einer neuen Sicht (Login Ansicht) Flip I außer Kraft gesetzt applicationDidFinishLaunching, wo ich überprüfen, ob Benutzer Login-Daten haben, dann zeige ich nicht den Login-Bildschirm anders (unter der Annahme der erste Benutzung oder Abmeldung Fall) Ich modal den Login-Bildschirm präsentieren. Ich habe eine Möglichkeit, logout in einer Registerkarte Einstellungen in der App angegeben.

Ich bin mit [[UIApplication shared] Delegierten] Anruf-Instanz von AppDelegate zu erhalten, wenn Benutzer sich anmeldet ersten Mal. So kann ich den Zugang zum TabBarController erhalten, der Teil des Application Delegate ist (wie die meisten der Zeit). Allerdings, wenn ich versuche, meine loginViewController aus der Logout-Option in den Einstellungen aufrufen (irgendwo im Zyklus künftiges Leben), die gleiche Anruf [[UIApplication shared] delegieren] kehrt mir einen Delegierten, an dem ich nicht in der Lage bin eine der Methoden zu verwenden, I definiert haben. Es gibt mir bei Laufzeitfehler „Unbekannter Selektor an Instanz gesendet“.

Ich muss verstehen, was genau der Anruf [[UIApplication shared] Delegierten] kehrt? Hat der Delegatobjekt es Veränderung über den Zeitraum des Anwendungslebenszyklus zurückkehrt? Oder ist es eine Singleton-Instanz durch aus dem App-Lebenszyklus?

Und zweitens dieses Problem zu beheben, soll ich die tabBar zu einer Ansicht hinzufügen (im Hauptfenster enthalten ist), anstatt sie direkt an den UIWindow Hinzufügen (wie sie in der Vorlage für die Tab-Leiste Anwendung durchgeführt und scheint die gängige Praxis zu sein). Gibt es bekannte Probleme mit diesem Ansatz oder seine Ordnung, dies zu tun. Jeder hat versucht, diese? Bitte lassen Sie mich wissen.

Danke Dev.

War es hilfreich?

Lösung

Es klingt wie Ihre Klasse, die eine Instanz des Singleton-Delegat wird nicht weiß, was es implementiert. stellen Sie sicher, Sie sind #importing Ihre Stellvertretung auf die Klasse, die verwendet sie als [[UIApplication sharedApplication] delegate]. wenn Sie eine Warnung über UIApplication nicht konform oder was auch immer auch erhalten, können Sie es zu Ihrem AppDelegate Typ umwandeln, um es zu vermeiden.

Zur Beantwortung Ihrer Frage, was dieser Aufruf zurückkehrt, ist es ein Singleton während des gesamten Lebenszyklus der Anwendung.

die zweite Frage zu beantworten, ist es mit der UIWindow (und damit in der AppDelegate) ist in Ordnung, und wahrscheinlich ermutigt, da es die Root-Controller Ihrer App ist (aus dem Klang der Dinge)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top