Tworzę aplikację na iPhone'a i chcę wyświetlić logo w widoku tytułów na pasku nawigacyjnym. Zrobiłem podklasę UINavigationController i dodaje następującą linię w viewDidLoad:tytuł na pasku nawigacyjnym niewidoczny w widokach po septach
self.navigationBar.topItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"titlelogo.png"]];
(może to wydawać się odpadów do tylko jednej linii, ale używam go w wielu miejscach i nie chcę aby użyć [wyglądu UINavigationBar] z różnych powodów)
To działa dobrze dla najbliższego dziecka kontrolera nawigacyjnego - widzę logo. Jednakże, kiedy przesuniemy segment do innego widoku, logo nie przenosi się, mimo że są one (według mojej najlepszej wiedzy) częścią "tego samego" kontrolera nawigacyjnego.
(dla porównania) -> MyNavigationController -> SomeViewController -> SomeOtherViewController
Próbowałem również wchodząc w viewDidLoad z SomeOtherViewController z:
self.navigationController.navigationBar.topItem.titleView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"titlelogo.png"]];
To wciąż nie pokazuje się logo.
Po niektóre wywiercenie, odkryłem, że jeśli 1) nie mam tej linii w navigationcontroller za viewDidLoad i 2) Ja mam drugą linię w SomeOtherViewController za viewDidLoad, a następnie:
Start: Przedstawiamy SomeViewController . Brak loga. Kliknij, aby przesunąć segue: Logo pojawi się na pasku SomeViewController, zanim zniknie. Przeglądam teraz SomeOtherViewController: bez logo. Kliknij ponownie: Pasek nawigacyjny SomeViewController nadal ma logo.
Oczywiście nie rozumiem czegoś o działaniu kontrolera nawigacji. Czy ktoś może mi powiedzieć, jak to naprawić?