我正在开展一个项目,我希望根据设备的方向替换图标而不允许viewController
旋转。我有几个允许旋转的viewController
和其他在我的导航控制器中指定不允许旋转的内容。
这个实现正是我想要的。
导航控制器中的代码:
- (BOOL)shouldAutorotate
{
id currentViewController = self.topViewController;
if ([currentViewController isKindOfClass:[ChimpTabBarController class]]) {
ChimpTabBarController *tabbarController = (ChimpTabBarController*)currentViewController;
if (tabbarController.selectedIndex == 0){
return NO;
}
} else if ([currentViewController isKindOfClass:[RotationViewController class]] || [currentViewController isKindOfClass:[ChimpBlackoutVC class]] || [currentViewController isKindOfClass:[EditPictureVC class]]) {
return NO;
}
return YES;
}
-(UIInterfaceOrientationMask)supportedInterfaceOrientations{
id currentViewController = self.topViewController;
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
if ([currentViewController isKindOfClass:[ChimpTabBarController class]]) {
ChimpTabBarController *tabbarController = (ChimpTabBarController*)currentViewController;
if (tabbarController.selectedIndex == 0){
return (UIInterfaceOrientationPortrait | UIInterfaceOrientationPortraitUpsideDown);
}
} else if ([currentViewController isKindOfClass:[RotationViewController class]] || [currentViewController isKindOfClass:[ChimpBlackoutVC class]] || [currentViewController isKindOfClass:[EditPictureVC class]]) {
return (UIInterfaceOrientationPortrait | UIInterfaceOrientationPortraitUpsideDown);
}
return UIInterfaceOrientationMaskAll;
}
有没有办法找出我的设备想要转向哪个轮换,但是不允许?这样我就可以改变箭头的方向,一个单词等...
由于
答案 0 :(得分:0)
我自己找到了一种方式,比预期的要快。
对于您的应用程序,您可以使用:
UIInterfaceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;
但是当旋转禁用时,您可以随时询问设备的方向:
[[UIDevice currentDevice] orientation]
然后在你的viewcontroller中添加一个观察者,以了解设备何时改变方向:
- > How to check Device Orientation Change From Portrait To Landscape and Vice-Versa in iPad
希望这将有助于未来的人们。