De acuerdo con Apple, puedo combinar UINavigationController
y UITabBarController
usando el código, p. Ej.Debo usar un UINavigationController individual por barra de pestañas
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;
En esta configuración, sólo se vc4 tiene la UINavigationController
, pero lo que si quiero VC1-vc3 también tiene la UINavigationController
?, Debo hacer como ..
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;
Es esto el enfoque correcto?
Bueno, depende si esto es lo que quieres ... No diría que el enfoque es incorrecto, pero tal vez no dé el resultado que puedes esperar y/o hay mejores enfoques. ¿Cuál es tu objetivo? – Saphrosit
si tiene que navegar a través de muchas vistas en una sola pestaña, entonces necesitará usar el control de navegación. Si tiene ViewController solo para mostrarse por pestaña, entonces no use navigationController. Todo depende de cuál es tu requisito. –