10

StoreKit アプリ内アプリ購入インターフェイスを実装していますが、SKStoreProductViewControlleriPad ではランドスケープを処理しているように見えますが、iPhone のアプリではそうではないようです (ユニバーサルです)。

へのインターフェイスSKStoreProductViewControllerは非常に限られているため、 を操作することはできVCないようです。 他の誰かがこれに遭遇しましたか?回避策はありますか?

iPad で動作するコードを実行すると、SKStoreProductViewControllerが左側から約 1 インチ入ってきて、消えるまでそこにぶら下がっています。機能しているように見えますが、却下時にポップアップした VC を台無しにします。

コードは次のとおりです。

// Set up the store vc (creating it if not already done)
if (self.storeVC == nil) self.storeVC = [[SKStoreProductViewController alloc] init];
self.storeVC.delegate = self;
NSDictionary *params = [NSDictionary dictionaryWithObject:appID forKey:SKStoreProductParameterITunesItemIdentifier]; 

// Set up a HUD in case connecting to the store takes a while
[MBProgressHUD showHUDAddedTo:self.view animated:YES]; 

[self.storeVC loadProductWithParameters:params
                        completionBlock:^(BOOL result, NSError *error) {
       [MBProgressHUD hideHUDForView:self.view animated:YES];
       if (result) {
           [self presentViewController:self.storeVC animated:NO completion:^{
           }];
       }
  }];

GKHostedAuthenticateViewControllerさらに良いことに、メソッドから返されたビューコントローラーで同じ問題が発生しています。

GKLocalPlayer.authenticateHandler = ^(UIViewController *loginVC, NSError *error) {};

繰り返しますが、これらはどちらも iPhone ではポートレート モードであり (iPad ではサポートされていません)、UI を強制的にポートレート モードにします。戻ると、アプリの UI が台無しになります。

4

2 に答える 2

5

同様の問題に遭遇しました。私のユニバーサル アプリは横向きですが、SKStoreProductViewController は iPad の横向きではかなりうまく機能しますが、iPhone では視覚的な不具合が発生します。

私の解決策は、iPhone に強制的に SKStoreProductViewController を縦向きに表示させることでした。アプリの他の部分と向きが同じでないのは少し悲しいですが、画面の半分が切り取られるよりはましです。

以下のカスタム サブクラスを使用してこれを実現しました。

@interface SKPortraitStoreProductViewController : SKStoreProductViewController
@end

@implementation SKPortraitStoreProductViewController
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation {
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
        return UIInterfaceOrientationPortrait;
    else
        return [super preferredInterfaceOrientationForPresentation];
}
@end
于 2013-05-30T18:52:43.123 に答える