UITabbar定位问题

时间:2010-11-23 07:23:08

标签: ios4 orientation uitabbar

我有一个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所在

2 个答案:

答案 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;
    }
}