He creado mi aplicación con guiones gráficos y todas las vistas están administradas por un control tabbar.Deshabilitar/Habilitar pestañas en UITabBarController en la aplicación basada en storyboard
Así en el lanzamiento (yo sólo estoy trabajando en la interfaz de usuario del iPad en la actualidad) que hace esto:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad)
{
UITabBarController *tabBarController = (UITabBarController *)self.window.rootViewController;
UISplitViewController *splitViewController = [tabBarController.viewControllers objectAtIndex:0];
UINavigationController *navigationController = [splitViewController.viewControllers lastObject];
splitViewController.delegate = (id)navigationController.topViewController;
UINavigationController *masterNavigationController = [splitViewController.viewControllers objectAtIndex:0];
ProductionMasterViewController *controller = (ProductionMasterViewController *)masterNavigationController.topViewController;
controller.managedObjectContext = self.managedObjectContext;
}
}
Quiero ser capaz de activar o desactivar las pestañas de la tabBarController basado en la entrada del usuario (por lo , por ejemplo, un elemento debe seleccionarse en la primera pestaña para acceder a la segunda y tercera pestañas, que están deshabilitadas por defecto)
Lo que no tengo claro es cómo acceder a las pestañas para poder habilitar/insultarlos. Me gustaría crear una instancia de la AppDelegate y luego hacer algo como
AppDelegate *d = (AppDelegate *)[[UIApplication sharedApplication] delegate];
UITabBarController *tabs = (UITabBarController *)[d.window rootViewController];
[[[[tabs tabBar] items] objectAtIndex:2] setEnabled:YES];
[[[[tabs tabBar] items] objectAtIndex:3] setEnabled:YES];
[[[[tabs tabBar] items] objectAtIndex:4] setEnabled:YES];
(Eso parece un poco como debería funcionar, pero también parece bastante grave.)