Ho implementato una soluzione UITabBar personalizzata per un progetto. In sostanza, se ci sono più di 5 elementi, utilizzo una scrollView che consentirà all'utente di scorrere gli altri elementi della scheda e di sopprimere il pulsante più. Un aspetto simile può essere visto nell'app Weather Channel.Elimina piùNavigationController in UITabBarController personalizzato
Ogni elemento della barra delle schede corrisponde a un UINavigationController che gestisce la pila di viste per ciascuna scheda. Il problema che sto avendo è quando ho più di 5 elementi della scheda, dalla scheda 5 in poi non mantiene correttamente lo stack di navigazione. Sembra che piùNavigationController uccida lo stack di navigazione ogni volta che si ritorna a quella scheda e si viene riportati nuovamente alla pagina iniziale.
ho sovrascritto il metodo setSelectedViewController come segue:
- (void) setSelectedViewController:(UIViewController *)selectedViewController {
[super setSelectedViewController:selectedViewController];
if ([self.moreNavigationController.viewControllers count] > 1) {
self.moreNavigationController.viewControllers = [[NSArray alloc] initWithObjects:self.moreNavigationController.visibleViewController, nil];
}
}
Questo codice rimuoverà il più funzionalità con il tasto di navigazione a sinistra, ma non risolve il problema di mantenere la pila di navigazione. Tutte le altre schede funzionano correttamente. Posso attraversare diverse viste e lo stack viene mantenuto dopo che me ne vado e tornare a quella scheda. Capisco che questo è un problema complicato, quindi per favore fatemi sapere se ci sono aree in cui posso fornire chiarezza. Grazie!
Ho fatto questo un po 'diversamente, ma ho usato il tuo concetto di posizionare solo il primo ViewController e caricare tutti gli altri dinamicamente. Ben fatto! – Marquis103