0

我正在尝试展示一个SKStoreProductViewController 没有动画的实例。

来自视图控制器 StoreKit 的代码片段来自:

Objective-C

SKStoreProductViewController *storeProductVC = [[SKStoreProductViewController alloc] init];
[storeProductVC loadProductWithParameters: <PARAMETERS> completionBlock: nil];

[self presentViewController: storeProductVC animated: NO completion: nil];

迅速

let storeProductVC = SKStoreProductViewController()
storeProductVC.loadProduct(withParameters: <PARAMETERS>, completionBlock: nil)

self.present(storeProductVC, animated: false, completion: nil)

NO为国旗传球animated没有用。StoreKit 视图控制器仍然显示动画。我知道 Apple 框架的主题是允许最少的定制,但我希望情况并非如此。

4

1 回答 1

1

您可以在单独的 UIWindow 中呈现它而无需动画。

Objective-C

SKStoreProductViewController *storeProductVC = [[SKStoreProductViewController alloc] init];
[storeProductVC loadProductWithParameters: <PARAMETERS> completionBlock: nil];

UIScreen *mainScreen = [UIScreen mainScreen];

// Note: storeKitWindow should be strongly held, i.e. a property
self.storeKitWindow = [[UIWindow alloc] initWithFrame: mainScreen.bounds];
self.storeKitWindow.screen = mainScreen;
self.storeKitWindow.windowLevel = UIWindowLevelStatusBar;
self.storeKitWindow.rootViewController = storeProductVC;

[self.storeKitWindow makeKeyAndVisible];

迅速

let storeProductVC = SKStoreProductViewController()
storeProductVC.loadProduct(withParameters: [:], completionBlock: nil)

let mainScreen = UIScreen.main

// Note: storeKitWindow should be strongly held, i.e. a property
storeKitWindow = UIWindow(frame: mainScreen.bounds)
storeKitWindow.screen = mainScreen
storeKitWindow.windowLevel = UIWindowLevelStatusBar
storeKitWindow.rootViewController = storeProductVC

storeKitWindow.makeKeyAndVisible()
于 2017-05-10T20:24:22.763 回答