iOS6中的方向更改问题

时间:2013-05-02 09:33:00

标签: ios objective-c cocoa-touch ios6

我的应用程序适用于iOS5。但对于iOS6,我遇到了以下方向问题。

我有一个ViewController VC1。旋转时(将方向更改为UIInterfaceOrientationLandscapeRight)我想呈现另一个ViewController VC2,当你向后旋转时我需要关闭VC2并且VC1应该处于纵向模式。

我在我的应用程序中使用tabBar,我只想在第一个选项卡中使用此功能。

在tabBar中我写了

-(BOOL) shouldAutorotate
{
    UINavigationController *nav = (UINavigationController *)self.selectedViewController;
    if ([nav.topViewController isKindOfClass:[MainViewController class]])
    {
        return YES;
    }
    else
    {
        return NO;
    }
} 
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    //Here I am writing code for presenting view(using notifications)
    // but When I rotate the device to landscape it's getting called but when I rotate back 
    //to portrait I not getting called.
}

谢谢。

1 个答案:

答案 0 :(得分:0)

请尝试使用ios 6 :(示例)

- (BOOL)shouldAutorotate
{
   return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationPortrait | UIInterfaceOrientationLandscapeRight | UIInterfaceOrientationLandscapeLeft;

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
   return UIInterfaceOrientationLandscapeRight;

}