मैंने स्टोरीबोर्ड के साथ अपना ऐप बनाया है और सभी दृश्य एक टैबबार नियंत्रक द्वारा प्रबंधित किए जाते हैं।स्टोरीबोर्ड-आधारित ऐप में UITabBarController में टैब अक्षम/सक्षम करें
तो लांच (मैं केवल आईपैड यूआई वर्तमान में काम कर रहा हूँ) यह ऐसा करता है पर:
- (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];
की तरह कुछ करना (यह थोड़े है जैसे कि यह काम करना चाहिए लगता है, लेकिन यह भी काफी सकल लगता है।)