Nello storyboard, ho un controller di visualizzazione introduttivo che sfuma ad un UINavigationController.Ottieni UINavigationController definito da storyboard da AppDelegate
| | | |
-> | | -> | |
| | | |
ViewCtrl NavCtrl
vorrei ottenere un riferimento al controller di navigazione dal delegato app (come la risposta @Guillaume fa in this question).
Ecco come sto cercando di accedervi:
UIApplication.sharedApplication.delegate.window.rootViewController.navigationController;
Ma il controller di navigazione è pari a zero.
Qualche idea sul perché navController è nullo o cosa posso fare per ottenere un riferimento ad esso?
Hai impostato l'ID Storyboard per UINavigationController? In caso contrario, dovresti farlo nello Storyboard. Dopodiché, non hai bisogno di tutto ciò per accedere al tuo controller di navigazione. Avresti solo bisogno di [self.storyboard instantiateViewControllerWithIdentifier: @ "myID"]. Sto assumendo la tua chiamata dal tuo controller di visualizzazione. Per accedere a un controller di navigazione come desiderato, ciò sarebbe possibile solo se il tuo rootViewController fosse all'interno di un UINavigationController. – rocir
Grazie a @rocir! Sembra promettente. La mia unica obiezione è che dovrebbe esserci già un UINavigationController istanziato, e mi piacerebbe avere un riferimento a quello. Non penso di voler istanziare un secondo controller nav. – bbrame
Ma in questo modo non lo farai perché il tuo rootViewController non si trova all'interno di un UINavigationController. Inoltre, a questo punto, UIViewController non è stato ancora istanziato. Quindi hai qualche seguito che collega questi due controller di vista? – rocir