0

我的应用程序在 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.
}

谢谢你。

4

1 回答 1

0

请用 ios 6 试试这个:(示例)

- (BOOL)shouldAutorotate
{
   return YES;
}

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

}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
   return UIInterfaceOrientationLandscapeRight;

}
于 2013-05-02T09:54:52.740 回答