Korrektes Anzeigen des bedingten Anmeldebildschirms beim Start der App mit Storyboards und Split-View-Controllern?

Dies scheint so, als ob es einfach sein sollte, aber es zeigt sich, dass es viele herausfordernde Nuancen gibt - und ich habe an keiner anderen Stelle eine Antwort auf Stack Overflow gefunden, die dies vollständig, klar und einfach beantwortet.

Kurz gesagt: Ich habe eine iPad-Anwendung, die Storyboards zum Layout des Anwendungsflusses verwendet, und einen Controller für geteilte Ansichten als primären Controller für Stammansichten.

Diese Anwendung prüft beim Start, ob Anmeldeinformationen gespeichert sind und ob sie direkt zur Benutzeroberfläche springen. Andernfalls wird eine Vollbild-Anmeldeseite angezeigt.

Die Herausforderung dabei - wo sollte diese bedingte Prüfung durchgeführt werden und wie sollte der Anmeldebildschirm instanziiert werden?

Ich habe jede nur erdenkliche Permutation ausprobiert.

In der App scheint Delegate der naheliegende Ort zu sein, aber das Aufrufen von Segues oder modalen Popups scheint ignoriert zu werden, da die Ansichten aus dem Storyboard noch nicht live sind.

In den Startmethoden für die geteilte Ansicht scheint der Detail-Controller der nächste naheliegende Ort zu sein.

Die Lösung, die meiner Arbeitsweise am nächsten kommt, ist hier beschrieben:https://stackoverflow.com/a/8224389/529774

<code>- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
    UIViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"Login"];
    [vc setModalPresentationStyle:UIModalPresentationFullScreen];

    [self presentModalViewController:vc animated:NO];
}
</code>

Bei dieser Implementierung, die vom Detailansichts-Controller der geteilten Ansicht aufgerufen wird, blinkt die zugrunde liegende geteilte Ansicht kurz auf dem Bildschirm.

Wenn ich von viewDidAppear zu viewWillAppear wechsle, ist kein Flash vorhanden. Die Anmeldeansicht wird jedoch im Hochformat gezeichnet, auch wenn der Bildschirm in Querformat gedreht wird.

Wie gesagt - diese Art der bedingten Anmeldeanzeige scheint üblich und einfach zu sein, aber ich kann nirgendwo ein einfaches Arbeitsbeispiel finden, das eine geteilte Ansicht, Storyboards, Rotationsbewusstsein kombiniert und das Blinken der Benutzeroberfläche verhindert.

Irgendwelche Tipps? Hinweise auf gute Arbeitsbeispiele?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage