我正在使用SKStoreProductViewController在我的应用中打开appstore。它呈现成功,但其中的状态栏未显示,Navbar看起来像44像素的高度。但它不会在任何设备的任何iOS 8.3v中发生。 这种情况仅在所有iOS 8.4v设备中发生。
在我的plist中,UIViewControllerBasedStatusbarAppearance设置为NO。我也尝试过,但没用。
状态栏中的红色是超级视图导航栏颜色。
注意:我正在从ParentViewController呈现SKStoreProductViewController。
非常感谢任何帮助。
答案 0 :(得分: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];
}
}