在iOS6的定位问题(orientation issue in ios6)

2019-10-17 07:08发布

我在我的应用程序中使用的UINavigationController,我的第一个控制器称为A,它是严格只portrite并且在我的A controller.Once一个按钮,我点击我创建实例,称为B另一个视图控制器的按钮。 创建BI实例后我呈现模态使用以下方法

[self presentViewController:BInstance animated:YES completion:^{
            NSLog(@"completed");
        }];

我的B控制可以能够将支持所有的方位,这是预期,直到ios5.1及更早版本。 现在我想利用Xcode4.5它是没有得到旋转我期待着解决,我发现了一些有关shouldAutorotateToInterfaceOrientation博客的问题iOS6的运行我的项目方法得到了来自最新的iOS6的弃用。 我使用的替代也

-(BOOL)shouldAutorotate{
    return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskAll;
}

但仍然没有太多预期的结果。

问:是什么让我的B控制会为连我仅适用于portrite所有方向工作。

在此先感谢您的所有建议/意见对这个很有用。

Answer 1:

首先,在AppDelegate中,写这篇文章。 这是非常IMP

- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
     return (UIInterfaceOrientationMaskAll);
}

那么,对于UIViewControllers,其中只需要纵向模式,写这些功能

- (BOOL)shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations
{
    return (UIInterfaceOrientationMaskPortrait);
}

对于UIViewControllers,需要景观也变化屏蔽所有。

- (NSUInteger)supportedInterfaceOrientations
{
    return (UIInterfaceOrientationMaskAllButUpsideDown);
    //OR return (UIInterfaceOrientationMaskAll);
}

现在,如果你想要做一些改变的时候方向的变化,然后使用此功能。

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{

}


文章来源: orientation issue in ios6