W scenorysie mam kontroler widoku wprowadzającego, który zanika do kontrolera UINavigationController.Pobierz UINavigationController zdefiniowany przez storyboard z AppDelegate
| | | |
-> | | -> | |
| | | |
ViewCtrl NavCtrl
chciałbym uzyskać odniesienie do kontrolera nawigacji z App delegata (jak odpowiedź @Guillaume robi w this question).
Oto jak próbuję uzyskać do niego dostęp:
UIApplication.sharedApplication.delegate.window.rootViewController.navigationController;
Ale kontroler nawigacyjny jest zerowa.
Jakiekolwiek pojęcie, dlaczego navController jest zerowe lub co mogę zrobić, aby uzyskać odniesienie do niego?
Czy ustawić identyfikator Storyboard dla swojego UINavigationController? Jeśli nie, powinieneś to zrobić w swojej Storyboard. Po tym wszystkim nie potrzebujesz tego, aby uzyskać dostęp do kontrolera nawigacyjnego. Po prostu potrzebujesz [self.storyboard instantiateViewControllerWithIdentifier: @ "myID"]. Zakładam, że dzwonisz do tego z kontrolera widoku. Aby uzyskać dostęp do kontrolera nawigacyjnego, jaki chciałeś, byłby to możliwe tylko wtedy, gdy twój rootViewController byłby w UINavigationController. – rocir
Dzięki @rocir! To wygląda obiecująco. Jedynym moim zastrzeżeniem jest to, że powinienem już utworzyć instancję UINavigationController i chciałbym uzyskać odniesienie do tego. Nie sądzę, żebym chciał utworzyć drugi kontroler nawigacyjny. – bbrame
Ale w ten sposób nie zrobisz tego, ponieważ twój rootViewController nie znajduje się wewnątrz kontrolera UINavigationController. Również w tym momencie UIViewController nie został jeszcze utworzony. Czy masz jakieś przejście między tymi dwoma kontrolerami widoku? – rocir