2012-04-09 19 views
0

Ich frage mich, was wäre der beste Weg, um mein Ziel zu erreichen. Ich habe eine iPhone App, die Storyboards verwendet und einen Tabbar-Controller als Root-Ansicht hat. Unter einer der Registerkarten muss ich einen View-Controller anzeigen, der in einen Navigationscontroller eingebettet ist und etwa 3 Folien tief ist, wenn eine lokale Benachrichtigung gedrückt wird.Lokale Benachrichtigungen und Storyboards

Irgendwelche Ideen der beste Weg, dies zu tun? Ich werde mit dem Versuch fortfahren, dies auf eine saubere Art und Weise zu implementieren, und ich werde posten, wenn niemand eine Antwort hat, aber einige Hilfe in die richtige Richtung würde geschätzt werden. Vielen Dank.

Antwort

1

Das war die Methode, die ich war nach:

  • (void) setViewControllers: (NSArray *) Viewcontrollers animiert: (BOOL) animiert

Und da ich bestehenden Viewcontrollers verwenden wollte, die hatte Layouts für meine Ansicht aus dem Storyboard habe ich sie mit diesem gezogen und initialisiert, was ich brauche. Helfen Sie damit anderen in der Zukunft.

  • (id) instantiateViewControllerWithIdentifier: (NSString *) Kennung
+0

Hat diese Methode für Sie funktioniert, wenn Ihre App überhaupt nicht läuft, dh nicht einmal im Hintergrund? – Ben

+0

Ja, es funktionierte für mich, aber die Methode gewann, t laufen, während es im Hintergrund ist. Wenn die App im Vordergrund angezeigt wird, wird die Methode ausgelöst. – Michael

0

Ich würde die userInfo Eigenschaft auf der UILocalNotification Klasse verwenden. Richten Sie eine Zeichenfolge mit dem Namen des Controllers ein, den Sie anzeigen möchten.

Fang die Meldungen mit:

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 

Im AppDelegate. Dann suchen Sie nach der Zeichenfolge, die Sie auf der UILocalNotification speichern und die nächste Methode in den UINavigationController:

- (void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated 

Um den sachgemäßen Verwendung Viewcontroller zu zeigen. Wenn Sie möchten, dass Ihre App immer den gleichen View-Controller anzeigt, müssen Sie die userInfo nicht einrichten, Sie müssen lediglich die obige Methode UINavigationController implementieren.

Ich hoffe, es hilft.

+0

Es scheint mir, dass diese Methode Navigation zur vorherigen Ansichten im Navigationsstapel nicht erlauben würde, zurück. Die Ansicht, nach der ich suche, ist der 3. in einem Stapel von Navigationssteuerungen. Wenn 1 und 2 nicht die Daten haben, die benötigt werden, um zu initialisieren, würde ich mit diesem Ansatz aus sein. – Michael

Verwandte Themen