2013-03-25 2 views
14
- (IBAction)submitButtonClicked:(id)sender{ 
    NSLog(@"here"); 
    SuccessOrFailViewController *sfvc = [[SuccessOrFailViewController alloc] init]; 
    [self presentViewController:sfvc animated:NO completion:NULL]; 
} 

Ich versuche, eine neue Seite zu öffnen, wenn ein Benutzer auf die Senden-Schaltfläche in der App klickt. Dies öffnet jedoch komplett schwarzen Bildschirm mit nichts darauf. Wie öffne ich den ViewController stattdessen?presentViewController zeigt schwarze Seite

Antwort

41

Sie sind nicht die Spitze Namen für den Benutzer-Interface eingeben:

SuccessOrFailViewController *sfvc = [[SuccessOrFailViewController alloc] initWithNibName:@"SuccessOrFailViewController" bundle:nil]; 
[self presentViewController:sfvc animated:NO completion:NULL]; 

Für Storyboard ist dies der Weg zu gehen:

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
SuccessOrFailViewController *sfvc = [storyboard instantiateViewControllerWithIdentifier:@"SuccessOrFailViewController"]; 
[sfvc setModalPresentationStyle:UIModalPresentationFullScreen]; 
[self presentModalViewController:sfvc animated:YES]; 
+0

Missing "=" in diesem statment: SuccessOrFailViewController * SFVC [Storyboard instantiateViewControllerWithIdentifier: @ "SuccessOrFailViewController"]; – mikemike396

+0

Bearbeitete die Antwort und reparierte sie. Thx – Lefteris

+0

Methode mit Storyboard ist ziemlich cool! Thaks – pash3r

1

Für Storyboard iOS7

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
SuccessOrFailViewController *sfvc = [storyboard instantiateViewControllerWithIdentifier:@"SuccessOrFailViewController"]; 
[sfvc setModalPresentationStyle:UIModalPresentationFullScreen]; 
[self presentViewController:sfvc animated:YES completion:nil]; 
6

Swift

var next = self.storyboard?.instantiateViewControllerWithIdentifier("DashboardController") as! DashboardController 
self.presentViewController(next, animated: true, completion: nil) 

nicht Viewcontroller StoryBoard Id in StoryBoard zu setzen vergessen ->identity inspector

3

Incase jemand anderes findet diese, stellen Sie sicher, dass Sie nicht self.view.backgroundColor = UIColor.clearColor() in der Ansicht festgelegt haben gezeigt werden ... Dies löste es für mich.

+0

Hey, das hat mein Problem auch gelöst. Vielen Dank. Ich wusste, dass die Lösung einfach sein sollte, aber ich weiß nicht, was genau das Problem ist. – mythicalcoder

+0

Richtig, Sie müssen sich über 'Modal Presentation Style' kümmern https://developer.apple.com/reference/uikit/uiviewcontroller/1621355-modalpresentationstyle – onmyway133

1

Ich hatte dies nach dem Hinzufügen und Löschen von View Controllern im Storyboard und vergessen, den View Controller mit der neuesten Storyboard-Kennung zu aktualisieren.

Zum Beispiel, wenn Sie programmatisch auf einen neuen View-Controller bewegt werden, wie dieser (Anmerkung Identifier im Code ist „FirstUserVC“):

let firstLaunch = (storyboard?.instantiateViewControllerWithIdentifier("FirstUserVC"))! as UIViewController 
self.navigationController?.pushViewController(firstLaunch, animated: true) 

Die sicher, im Interface Builder haben Sie die Storyboard-ID gesetzt wie dies mit FirstUserVC in der Identity aufgelistet für Storyboard-ID: enter image description here