队
我正在开发一个支持项目,我对iPhone有基本的了解。当我在设备中更改方向时,在方向更改时不会调用以下方法。
- (BOOL)shouldAutorotate {
UIInterfaceOrientation orientation = [[UIApplication sharedApplication] statusBarOrientation];
if (orientation == UIInterfaceOrientationPortrait) {
// your code for portrait mode
}
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskPortrait;
//return here which orientation you are going to support
}
我正在通过presentViewController推送屏幕,并且在推动屏幕之前调用上面的方法,但是在推动屏幕和更改方向后没有任何内容。
另外,我尝试创建一个类别,如下所述,但我发现viewController找不到错误,不知道我在这里缺少什么......
在IOS7中。如果你使用UINavigationController,旋转处理方式是不同的!
看看UINavigationController,可以看到它是UIViewController的子类,那就是在他上面列出了上面处理方法的轮换;所以我需要使用UINavigationController也做旋转处理,我的方法是将类别添加到UINavigationController,这样做。
在类别中。 M写道
-(BOOL)shouldAutorotate {
return [[self.viewControllers lastObject] shouldAutorotate];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
非常感谢任何帮助!
答案 0 :(得分:0)
对我来说,其他两个功能也有效,但你可以尝试使用下面的代表
来自Apple Docs:
在用户界面开始之前发送到视图控制器 旋转。
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
持续的时间:(NSTimeInterval)持续时间
用户界面旋转后发送到视图控制器:
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation