/ / Best practice quando si combinano le schede con Navigazione - iphone, ios, ogg-c, uitabbarcontroller, uinavigationbar

La migliore pratica quando si combinano le schede con Navigazione - iphone, ios, ogg-c, uitabbarcontroller, uinavigationbar

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 № 1

Preferirei 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.