我的游戏使用cocos2d横向模式。当我需要呈现视图控制器时,它们也处于横向模式,例如游戏中心和商店视图控制器。
商店视图控制器适用于ios6及之前(由于内容仍处于纵向模式,看起来有点奇怪),但它在ios7上崩溃。游戏中心仍然很好。
请注意,商店视图控制器和游戏中心视图控制器在ios7上仍然可以完美地用于纵向模式。
那么可以将商店视图控制器设置为仅限肖像吗? (虽然游戏中心视图控制器仍处于横向状态)
我使用此代码来展示商店视图控制器:
if ([SKStoreProductViewController class] != nil) {
//create store view controller
SKStoreProductViewController *productController = [[SKStoreProductViewController alloc] init];
productController.delegate = (id<SKStoreProductViewControllerDelegate>)self;
//load product details
NSDictionary *productParameters = @{SKStoreProductParameterITunesItemIdentifier:url};
[productController loadProductWithParameters:productParameters completionBlock:^(BOOL result, NSError *error) {
if (!result) NSLog(@"Error: %@", error);
}];
[[(AppController*)[[UIApplication sharedApplication] delegate] navController] presentViewController:productController animated:YES completion:nil];
} else {
url = [NSString stringWithFormat:@"https://itunes.apple.com/app/id%@?mt=8", url];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];
}
上面的网址是app id字符串
编辑:
我试过
productController.view.transform = CGAffineTransformMakeRotation(M_PI / 2);
但它仍处于风景中
答案 0 :(得分:3)
您可以继承SKStoreProductViewController,使其仅支持像
这样的肖像方向@implementation PortaitStoreProductViewController
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return UIInterfaceOrientationPortrait;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
- (BOOL)shouldAutorotate
{
return NO;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation
{
return UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}
然后像
一样使用它SKStoreProductViewController *productController = [[PortaitStoreProductViewController alloc] init];