2017-05-10 7 views
0
entmutigt

Ich versuche, einen Viewcontroller programmatisch zu präsentieren:iOS: Presenting Ansicht-Controller auf getrennte Ansicht Controller presentViewController Fehler

- (void)viewDidLoad { 
    [super viewDidLoad]; 
    NewViewController *vc = [[NewViewController alloc] init]; 
    [self presentViewController:vc animated:YES completion:nil]; 
} 

Aber ich bin immer diese Fehlermeldung:

Presenting view controllers on detached view controllers is discouraged 

und auch Ich bekomme einen schwarzen Bildschirm auf dem iPhone. Diese

ist, wie mein Storyboard und iPhone wie folgt aussieht:

enter image description here Jede o Sie weiß, warum ich diesen Fehler bin immer und auch, warum ich immer den schwarzen Bildschirm?

Ich werde Ihre Hilfe wirklich zu schätzen wissen.

Antwort

0

Sie versuchen, einen View-Controller in viewDidLoad zu präsentieren. Diese Methode wird zu dem Zeitpunkt aufgerufen, an dem die Ansicht des View-Controllers aus dem Storyboard geladen wird. Zu diesem Zeitpunkt wird der View Controller noch nicht angezeigt und daher aus der Sicht der App losgelöst.

Sie könnten den schwarzen Bildschirm wegen dieses Fehlers erhalten.

Um dieses Problem zu lösen, um presentViewController im viewDidLoad nicht aufzurufen, rufen Sie es später auf, nachdem die Ansicht angezeigt wird. Zum Beispiel können Sie es in der viewDidAppear Methode des View-Controllers aufrufen.

+0

Ich ändere es zu ViewDidApper und ich habe keine Fehler, aber immer noch den schwarzen Bildschirm. Irgendwelche Ideen warum? – user2924482

+0

Haben Sie überprüft, was im View-Debugger angezeigt wird? Haben Sie den relevanten Methoden von 'NewViewController' Breakpoints hinzugefügt, um zu sehen, ob sie korrekt angezeigt wurden? – Nef10

+0

Ja und alle Methoden wurden aufgerufen. viewWillAppear und viewDidLoad und viewDidAppear. Aber der Bildschirm ist schwarz – user2924482

Verwandte Themen