Secondo Apple, posso combinare UINavigationController
e UITabBarController
utilizzando il codice, ad es.Devo usare un singolo UINavigationController per Tab Barra
MyViewController1* vc1 = [[MyViewController1 alloc] init];
MyViewController2* vc2 = [[MyViewController2 alloc] init];
MyViewController3* vc3 = [[MyViewController3 alloc] init];
MyNavRootViewController* vc4 = [[MyNavRootViewController alloc] init];
UINavigationController* navController = [[UINavigationController alloc]
initWithRootViewController:vc4];
NSArray* controllers = [NSArray arrayWithObjects:vc1, vc2, vc3, navController, nil];
tabBarController.viewControllers = controllers;
In questa configurazione, solo VC4 ha la UINavigationController
, ma cosa succede se voglio VC1-VC3 ha anche la UINavigationController
?, Devo fare come ..
MyViewController1* vc1 = [[MyViewController1 alloc] init];
UINavigationController* nv1 = [[UINavigationController alloc]
initWithRootViewController:vc1];
MyViewController1* vc2 = [[MyViewController2 alloc] init];
UINavigationController* nv2= [[UINavigationController alloc]
initWithRootViewController:vc2];
MyViewController1* vc3 = [[MyViewController3 alloc] init];
UINavigationController* nv3 = [[UINavigationController alloc]
initWithRootViewController:vc3];
NSArray* controllers = [NSArray arrayWithObjects:nv1, nv2, nv3, nil];
tabBarController.viewControllers = controllers;
è questo l'approccio giusto?
Beh, dipende se questo è quello che vuoi ... Non direi che l'approccio è sbagliato, ma forse non fornisce il risultato che ci si può aspettare e/o ci sono approcci migliori. Qual è il tuo obiettivo? – Saphrosit
se devi navigare attraverso molte viste in una singola Scheda, allora dovresti usare il navigationController. Se si dispone di un singolo ViewController da mostrare per scheda, non utilizzare navigationController. Tutto dipende da quale sia la tua esigenza. –