2015-04-30 4 views
5

Ich bin wirklich verwirrt über die Beziehung zwischen Storyboards und drängen auf Ansichten programmgesteuert.Verwirrt über Storyboards und drängen programmgesteuert ios Objective C

Ich benutze SWRevealViewController, um ein Menü von Elementen anzuzeigen.

Wenn ich auf das Storyboard schieben

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
PhotosViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"PhotosViewController"]; 
[self presentModalViewController:controller animated:YES]; 
[self.navigationController pushViewController:controller animated:YES]; 

Alle Informationen in meinem Storyboard angezeigt verwenden, aber es gibt keinen „Zurück“ -Taste auf den SWRevealViewController.

Wenn ich an den View-Controller schieben mit

PhotosViewController *frontViewController = [[StreamScreen alloc] init]; 
    newFrontController = [[UINavigationController alloc] initWithRootViewController:frontViewController]; 

Dann kann ich alles sehen, die ich hinzugefügt haben, programmatisch aber nichts aus dem Storyboard.

Meine Frage ist, wie kann ich auf Dinge von beiden Storyboard und Dinge, die ich programmgesteuert hinzugefügt habe zugreifen.

Antwort

3

Wenn Sie den View-Controller präsentieren, gibt es keinen Standard-Back-Button, denn wenn Sie einen Controller präsentieren, wird dieser nicht im Navigations-Stack von NavigationController hinzugefügt, so dass Sie diese Option nicht erhalten.

Wenn Sie Push-Controller möchten, verwenden Sie nicht presentModalViewController.

wie Versuchen unter

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil]; 
PhotosViewController *controller = [storyboard instantiateViewControllerWithIdentifier:@"PhotosViewController"]; 
[self.navigationController pushViewController:controller animated:YES]; 

und wenn Sie Controller präsentieren wollen dann eine Zurück-Taste manuell hinzufügen erstellen, wie wir standardmäßig in der Navigation Zurück-Taste und auf ihrem Klick Schreib unter Code den Controller zu entlassen haben.

[self dismissViewControllerAnimated:YES]; 

Hoffe das hilft Ihnen.

+0

Vielen Dank für diesen Code. Ich bin jetzt einen Schritt weiter. Jetzt sehe ich meinen Bildschirm für einen Bruchteil einer Sekunde und dann wird der Bildschirm schwarz. Irgendwelche Ideen, warum das ist? Danke nochmal. – AB567

+0

müssen Sie Ihren Code sehen, damit Sie besser antworten können. Grund kann sein: Sie drücken zweimal zum zweiten Controller –

+1

und wenn meine Antwort Ihre veröffentlichte Frage löst. Bitte markieren Sie es als richtige Antwort. –