私はストーリーボードでアプリケーションを構築しており、すべてのビューはtabbarcontrollerによって管理されています。ストーリーボードベースのアプリケーションで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内のタブを有効または無効にすることができるようにしたいですたとえば、デフォルトでは無効になっている2番目と3番目のタブにアクセスするには、最初のタブでアイテムを選択する必要があります)
タブにアクセスする方法がわかりませんそれらを有効/無効にします。私は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];
のようなものだろう(それが動作するはずのようにちょっとようだが、それはまた、かなり総思われることを。)