2017-05-10 54 views
0

我想呈現一個SKStoreProductViewController的實例沒有的動畫。從視圖控制器StoreKit代碼目前SKStoreProductViewController沒有動畫

片段從呈現:

目標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視圖控制器仍顯示動畫。我知道蘋果框架的主題是允許最少的定製,但我希望事實並非如此。

+0

你叫loadProduct'的'完成塊內'present'。 – rmaddy

+0

這並不能解決我的問題。是否在完成塊中呈現'SKStoreProductViewController'還是UX的決定。 –

回答

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()