我有一个tabBarController,它包含两个标签,我想1个标签是支持方向而另一个不是,怎么做?我试过了代码:
@implementation UITabBarController(CustomTabbar)
(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
if(self.tabBarController.selectedIndex==1){
NSLog(@"rotate");
return YES;
} 其他 {
NSLog(@"rotate");
return YES;
}
} @end
但是在我将view2旋转到横向模式并返回到view1之后,view1也变成了风景,直到我将它旋转回potrait,但我需要的是view1在出现时总是保持potrait,可以帮忙吗?
此致
Sathish所在
答案 0 :(得分:0)
在您不想旋转的视图控制器上,请确保:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
你返回NO;
您将为tabBar控制器返回它,而不是实际的viewController。
答案 1 :(得分:0)
使用UITabBar控制器时,所有方向消息都会转到标签栏并停在那里。
因此,要完成您要完成的任务,您必须创建一个继承自UITabBarController的新类,并使用它。
@interface CustomUITabBarController : UITabBarController
之后你有两个控制控制器方向的选项,你可以选择 shouldAutorotateToInterfaceOrientation 选择器。
您可以使用标签栏当前选择的索引为方向
返回YES或NO- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(self.selectedIndex == 0) {
return NO;
} else {
return YES;
}
}
或者您可以让控制器自行决定(正如您之前尝试的那样)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if (self.selectedViewController) {
return [self.selectedViewController shouldAutorotateToInterfaceOrientation:interfaceOrientation];
} else {
return YES;
}
}