SKStoreProductViewController取消按钮,留下一个白色的空白屏幕

时间:2016-02-02 10:19:39

标签: ios objective-c swift storekit ios-extensions

我使用适用于iOS 9的Action Extension制作了一个快速示例项目。它在我的包含应用程序中正常工作,但它不在我的扩展中。我在两个视图控制器中都使用了相同的代码。

显示商店产品视图控制器的按钮:

@IBAction func storebutton(sender: AnyObject) {
    let storeViewController = SKStoreProductViewController()
    let parameters = [SKStoreProductParameterITunesItemIdentifier: NSNumber(integer: 377298193)]
    storeViewController.delegate = self
    storeViewController.loadProductWithParameters(parameters, completionBlock: nil)
    self.presentViewController(storeViewController, animated: true) { () -> Void in }
}

委托方法:

//MARK: SKStoreProductViewController Delegate
func productViewControllerDidFinish(viewController: SKStoreProductViewController) {
   print("Delegate")
   viewController.dismissViewControllerAnimated(true,completion: nil)
}

当我点击来自我的操作扩展程序的商店产品视图上的取消按钮时,商店视图将被取消。 但它的委托方法永远不会被调用,整个屏幕仍然是完全白色的 - 永远不会回到Action Extension的观点。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:1)

没关系。 我发现委托方法不在Class中。 我不知道Xcode没有警告它。

答案 1 :(得分:0)

当SKStoreProductViewController没有委托集时,就会发生这种情况。

SKStoreProductViewController * vc = [SKStoreProductViewController new];
[vc loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:@"00000"} completionBlock:^(BOOL result, NSError * _Nullable error) {

}];

vc.delegate = self;