Отключение/включение вкладок в UITabBarController в приложении на основе раскадровки -

Я создал свое приложение с помощью раскадровки и все представления управляются tabbarcontroller.

Итак, при запуске (В настоящее время я работаю только над пользовательским интерфейсом iPad )он делает это:

- (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];

(Кажется, что это должно работать, но это также кажется довольно грубым.)

5
задан Charles Bandes 10 August 2012 в 23:10
поделиться