Poprawnie zaprezentować warunkowy ekran logowania podczas uruchamiania aplikacji za pomocą storyboardów i kontrolerów podzielonego widoku?

Wydaje się, że powinno to być proste, ale okazuje się, że ma wiele trudnych niuansów - i nie znalazłem odpowiedzi w innym miejscu na Stack Overflow, który odpowiada na to w pełni, jasno i prosto.

W skrócie - mam aplikację na iPada, która korzysta z storyboardów do układania przepływu aplikacji oraz kontroler podzielonego widoku jako główny kontroler widoku głównego.

Ta aplikacja sprawdza przy starcie, czy są przechowywane dane logowania, a jeśli są, przeskakuje bezpośrednio do interfejsu użytkownika, a jeśli nie, wyświetla pełną stronę logowania.

Wyzwanie jednak - gdzie należy wykonać sprawdzanie warunkowe i jak powinien zostać utworzony instancja ekranu logowania?

Próbowałem każdej permutacji, o której myślę.

W aplikacji delegat wydaje się oczywistym miejscem, ale wywołanie segues lub modalnych wyskakujących okienek wydaje się być ignorowane, ponieważ widoki z serii ujęć nie są jeszcze aktywne.

W metodach uruchamiania kontrolera szczegółów podzielonego widoku wydaje się kolejnym oczywistym miejscem.

Najbliższe rozwiązanie robocze, jakie mogę znaleźć, jest opisane tutaj: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>

Ale w przypadku tej implementacji, wywoływanej przez kontroler widoku szczegółowego widoku podzielonego, podstawowy podzielony widok miga na krótko na ekranie.

Jeśli zmienię widok z viewDidAppear na viewWillAppear, nie ma pamięci flash - ale widok logowania kończy się rysowaniem w pionie, nawet jeśli ekran jest obracany do poziomu.

Jak już powiedziałem - ten rodzaj warunkowego wyświetlania logowania wygląda na to, że powinien być powszechny i ​​łatwy, ale po prostu nie mogę znaleźć prostego przykładu pracy w dowolnym miejscu, który łączyłby podzielony widok, storyboardy, świadomość rotacji i która uniemożliwia flashowanie interfejsu.

Jakieś wskazówki? Wskaźniki do dobrych przykładów?

questionAnswers(4)

yourAnswerToTheQuestion