1

アプリでアプリストアを開くために SKStoreProductViewController を使用しています。正常に表示されましたが、ステータスバーが表示されず、Navbar の高さが 44 ピクセルのように見えます。ただし、どのデバイスのどの iOS 8.3v でも発生しません。この状況は、すべての iOS 8.4v デバイスでのみ発生します。

私のplistでは、UIViewControllerBasedStatusbarAppearanceがNOに設定されています。はいでも試しましたが、役に立ちません。

ここに画像の説明を入力

ステータス バーの赤い色は、スーパービュー ナビゲーション バーの色です。

注: ParentViewController から SKStoreProductViewController を提示しています。

どんな助けでも大歓迎です。

4

1 に答える 1

0

statusBar を UIView コンポーネントとして追加することでこれを解決しました。これは解決策の回避策です。私も同様の問題に直面しました。

   SKStoreProductViewController *_apsvc = [[SKStoreProductViewController alloc]init];
    _apsvc.delegate = self;

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0) {
        UIView *addStatusBar = [[UIView alloc] init];

        //change this to match your navigation bar

        UIViewController* viewController = [UIApplication sharedApplication].keyWindow.rootViewController;

        addStatusBar.frame = CGRectMake(0, 0, viewController.view.frame.size.width, 20);

        addStatusBar.backgroundColor =[UIColor whiteColor];


    }


    UIViewController* viewController = [UIApplication sharedApplication].keyWindow.rootViewController;
    if (viewController)
    {
        [[UIApplication sharedApplication].keyWindow.rootViewController  presentViewController:_apsvc animated:YES completion:^()
         {

             [_apsvc loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier : AppID}
                  completionBlock:^(BOOL result, NSError *error) {
                      if(error)
                      {
                         ....
                      }
                  }];
              [viewController.view addSubview:addStatusBar];

         }];

    }

}


    -(void)productViewControllerDidFinish:(SKStoreProductViewController    *)viewController
   {
        [addStatusBar removeFromSuperview];
       if (viewController)
       { 
       [viewController dismissViewControllerAnimated:YES completion:nil];
       }
    }
于 2015-09-13T05:59:49.893 に答える