我将设备置于横向模式并移至第二个视图控制器,该控制器仅支持纵向模式。当从第二视图控制器返回时(支持所有方向),第一视图控制器不会自动旋转到横向模式。
如果我做了以下代码,那么它在IOS6中的工作。但不适合IOS7。
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
[UIViewController attemptRotationToDeviceOrientation];
}
在IOS7中,viewController正在旋转,但状态栏没有旋转
答案 0 :(得分:0)
在VC A中实施以下内容:
-(BOOL)shouldAutorotate
{
return NO;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeRight;
}
答案 1 :(得分:0)
AMayes提出的解决方案并不完全正确。
UIViewController文档声明如下:
通常,系统仅在根视图上调用此方法 窗口的控制器或视图控制器呈现填充 整个屏幕;子视图控制器使用窗口的一部分 由他们的父视图控制器提供给他们,不再 直接参与有关支持轮换的决定。
因此,请将以下代码放在UINavigationController子类中:
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationLandscapeRight;
}