StoreKit アプリ内アプリ購入インターフェイスを実装していますが、SKStoreProductViewController
iPad ではランドスケープを処理しているように見えますが、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 が台無しになります。