Zaimplementowałem niestandardowe rozwiązanie UITabBar dla projektu. Zasadniczo, jeśli istnieje więcej niż 5 elementów, używam scrollView, który pozwala użytkownikowi przewijać dodatkowe pozycje tabulatorów i eliminuje przycisk więcej. Podobny wygląd można zobaczyć w aplikacji Weather Channel.Tłumienie moreNavigationController w niestandardowym UITabBarController
Każdy element paska kart odpowiada elementowi UINavigationController, który zarządza stosem widoków dla każdej karty. Problem, który mam, gdy mam więcej niż 5 elementów tabulatora, na karcie 5 nie działa poprawnie stos nawigacyjny. Wygląda na to, że im więcejNavigationController zabija stos nawigacyjny za każdym razem, gdy wrócisz do tej karty i ponownie przejdziesz na stronę początkową.
mam przesłonięte metody setSelectedViewController następująco:
- (void) setSelectedViewController:(UIViewController *)selectedViewController {
[super setSelectedViewController:selectedViewController];
if ([self.moreNavigationController.viewControllers count] > 1) {
self.moreNavigationController.viewControllers = [[NSArray alloc] initWithObjects:self.moreNavigationController.visibleViewController, nil];
}
}
Ten kod usunie większą funkcjonalność na przycisku nawigacyjnym po lewej stronie, ale to nie rozwiązuje problemu utrzymania stos nawigacji. Wszystkie pozostałe zakładki działają dobrze. Mogę przejść przez kilka widoków, a stos zostanie utrzymany po wyjściu i powrocie do tej karty. Rozumiem, że jest to skomplikowany problem, więc proszę o informację, czy są obszary, w których mogę zapewnić jasność. Dzięki!
Zrobiłem to całkiem inaczej, ale wykorzystałem twoją koncepcję tylko umieszczenia pierwszego ViewController i załadowania wszystkich innych dynamicznie. Ładnie wykonane! – Marquis103