Ho costruito la mia app con gli storyboard e tutte le visualizzazioni sono gestite da un tabollontroller.Disabilita/Abilita le schede in UITabBarController nell'app basata su storyboard
Così il lancio (sto lavorando solo sul iPad UI al momento) lo fa:
- (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;
}
}
Voglio essere in grado di attivare o disattivare le schede della tabBarController in base all'input dell'utente (in modo , ad esempio, un articolo deve essere selezionato nella prima scheda per accedere alla seconda e alla terza scheda, che sono disabilitate per impostazione predefinita)
Quello su cui non sono chiaro è come accedere alle schede per abilitare/disabilitare loro. Dovrei creare un'istanza della AppDelegate e poi fare qualcosa di simile
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];
(Che sembra un po 'come dovrebbe funzionare, ma sembra anche abbastanza grave.)