SKStoreProductViewController 取消按钮留下白色空白屏幕
SKStoreProductViewController's cancel button leaving a white, blank screen
我用 iOS 9 的动作扩展制作了一个快速示例项目。它在我的包含应用程序中正常工作,但它在我的扩展中不起作用。我在两个视图控制器中使用了相同的代码。
显示商店产品视图控制器的按钮:
@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 的视图。
谁能帮帮我?
没关系。
我发现委托方法在 Class 之外。
我不知道 Xcode 没有警告它。
当 SKStoreProductViewController 没有设置委托时会发生这种情况。
SKStoreProductViewController * vc = [SKStoreProductViewController new];
[vc loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:@"00000"} completionBlock:^(BOOL result, NSError * _Nullable error) {
}];
vc.delegate = self;
我用 iOS 9 的动作扩展制作了一个快速示例项目。它在我的包含应用程序中正常工作,但它在我的扩展中不起作用。我在两个视图控制器中使用了相同的代码。
显示商店产品视图控制器的按钮:
@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 的视图。
谁能帮帮我?
没关系。 我发现委托方法在 Class 之外。 我不知道 Xcode 没有警告它。
当 SKStoreProductViewController 没有设置委托时会发生这种情况。
SKStoreProductViewController * vc = [SKStoreProductViewController new];
[vc loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier:@"00000"} completionBlock:^(BOOL result, NSError * _Nullable error) {
}];
vc.delegate = self;