我們在應用程序中以編程方式添加了UITabBarController。我們增加了3的UINavigationController在UITabViewController像下面的代碼:修復UIViewController的方向
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.tabBar.tintColor = [UIColor colorWithRed:36.0/255.0 green:179.0/255.0 blue:125.0/255.0 alpha:1.0];
FirstViewController *VC1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
UINavigationController *navControllerFirst = [[UINavigationController alloc]initWithRootViewController:VC1];
UITabBarItem *item1 = [[UITabBarItem alloc] initWithTitle:@"First" image:[UIImage imageNamed:@"First"] tag:0];
navControllerFirst.tabBarItem = item1;
SecondViewController *VC2 = [[SecondViewController alloc]initWithNibName:@"SecondViewController" bundle:nil];
UINavigationController * navControllerSecond = [[UINavigationController alloc]initWithRootViewController:VC2];
UITabBarItem *item2 = [[UITabBarItem alloc] initWithTitle:@"Second" image:[UIImage imageNamed:@"Second"] tag:0];
navControllerSecond = item2;
ThirdViewController *callTransactionsNew=[[ThirdViewController alloc]initWithStyle:UITableViewStyleGrouped];
UINavigationController * navControllerThird = [[UINavigationController alloc]initWithRootViewController:callTransactionsNew];
UITabBarItem *item3 = [[UITabBarItem alloc] initWithTitle:@"Third" image:[UIImage imageNamed:@"Third"] tag:0];
navControllerThird = item3;
NSArray* controllers = [NSArray navControllerFirst, navControllerSecond, navControllerThird,nil];
self.tabBarController.viewControllers = controllers;
self.tabBarController.delegate = self;
self.tabBarController.view.frame = self.view.frame;
[self.tabBarController willMoveToParentViewController: self];
[self addChildViewController: self.tabBarController];
[self.view addSubview: self.tabBarController.view];
[self.tabBarController didMoveToParentViewController:self];
在didSelectViewController中的TabBar我們增加了下面的代碼。如果用戶在任何其他選項卡中處於橫向模式,然後他點擊第一個選項卡,此代碼將FirstViewController旋轉到縱向模式。
[UIViewController attemptRotationToDeviceOrientation];
if([theTabBarController.viewControllers indexOfObject:viewController] == 0) {
SEL sel = NSSelectorFromString(@"setOrientation:");
if([[UIDevice currentDevice] respondsToSelector:sel]) {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[[UIDevice currentDevice] performSelector:sel withObject:(__bridge id)((void*)UIInterfaceOrientationPortrait)];
#pragma clang diagnostic pop
}
}
我們的要求:
我們要FirstViewController的方向修正只人像。它不應該旋轉。其餘的UIViewControllers可以橫向和縱向旋轉。 任何人都可以請幫忙嗎?
是,我們是。必須有某種方式。我看到其他應用程序正在這樣做。 – varun