ero solito modello di applicazione a schede per iniziare il mio nuovo progetto iPhone.
Avrò 4 schede.
E voglio spostare la barra di navigazione in alto.
Quindi ho aggiunto questo AppDelegate:
UIViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
UIViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
UINavigationController *navigationcontroller = [[UINavigationController alloc] initWithRootViewController:viewController1];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navigationcontroller, viewController2, nil];
E questa barra di navigazione aggiunta solo nella parte superiore del primo ViewController (prima scheda).
Quello che voglio è aggiungere la barra di navigazione per l'intera applicazione non solo in una vista.
Questo mi consentirà di passare da una vista all'altra e viceversa.
Quindi qual è il modo migliore per creare una barra di navigazione in modo programmatico per tutte le visualizzazioni delle schede?
AGGIORNARE
Fondamentalmente la mia domanda principale è che dovrei avere una barra di navigazione per tutte le viste o ogni scheda dovrebbe avere la propria barra di navigazione?
Qual è la migliore pratica nel mondo di "iDevelopers".
risposte:
1 per risposta № 1Preferirei che il self.window.rootViewController fosse un controller di navigazione e, successivamente, spingere il tuo tabBarController o
NSMutableArray *viewControllers = [[NSMutableArray alloc] init];
// create someViewController
[viewControllers addObject:someView];
// create someViewController2
[viewControllers addObject:someView2];
UITabBarController *tabController = [[UITabBarController alloc] init];
[tabController setViewControllers:viewControllers];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:tabController]
self.window.rootViewController = navController;
0 per risposta № 2
Se vuoi avere barre di navigazione su ogni controller, dovresti avere UINavigationController
su ogni scheda del tuo UITabBarController
Guarda una risposta Questo domanda.
0 per risposta № 3
Hai bisogno di barra di navigazione devi aggiungere UINavigationController come hai fatto per ogni controller di visualizzazione nella barra delle schede. Quindi self.tabBarController.viewControllers avrà tutti i controller di navigazione.
Non è una buona idea passare da una scheda all'altra senza l'intervento dell'utente.