Sto facendo un'applicazione per iPhone e vorrei visualizzare un logo nella posizione titleview della mia barra di navigazione. Ho fatto una sottoclasse di UINavigationController e ha aggiunto la seguente riga nel viewDidLoad:titleview sulla barra di navigazione non visibile in viste dopo segues
self.navigationBar.topItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"titlelogo.png"]];
(questo può sembrare uno spreco di una sola riga, ma io sto usando in più posti e io non voglio per utilizzare [UINavigationBar aspetto] per vari motivi)
Questo funziona correttamente per il bambino immediato del controller di navigazione - Vedo il logo. Tuttavia, quando passo a un'altra vista, il logo non viene trasferito, anche se sono (per quanto ne so) parte dello "stesso" controller di navigazione.
(per riferimento) -> MyNavigationController -> SomeViewController -> SomeOtherViewController
Ho anche provato ad andare in viewDidLoad di SomeOtherViewController con un:
self.navigationController.navigationBar.topItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"titlelogo.png"]];
Questo ancora non mostra il logo.
Dopo un po 'rovistando, ho scoperto che se 1) non ho quella linea nel viewDidLoad del navigationController e 2) ho la seconda linea in viewDidLoad del SomeOtherViewController, quindi:
Inizio: Visualizza SomeViewController . Nessun logo Fare clic per inserire il seguito: il logo viene ora visualizzato sulla barra di SomeViewController, prima di scomparire. Ora sto visualizzando SomeOtherViewController: che non ha logo. Clic indietro: la barra di navigazione di SomeViewController ha ancora il logo.
Ovviamente sto fraintendendo qualcosa su come funziona un controller di navigazione. Qualcuno può dirmi come risolvere questo problema?