我已经使用故事板构建了我的应用程序,并且所有视图都由tabbarcontroller管理。在基于storyboard的应用程序中禁用/启用UITabBarController中的选项卡
所以在启动(我只工作目前iPad的UI),它这样做:
- (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;
}
}
我希望能够根据用户输入启用或禁用tabBarController标签(所以,例如,需要在第一个标签中选择一个项目才能访问默认禁用的第二个和第三个标签)
我不清楚的是如何访问标签以便启用/消除它们。我想创建的appdelegate的一个实例,然后像做
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];
(这有点儿好像它应该工作,但它似乎也相当恶心。)