我只是尝试在我的应用程序中实现iTunes商店屏幕,并且它正确显示。但是,当用户完成屏幕(进行购买或点击“取消”)后,我得到的只是一个白色屏幕,我必须完全关闭我的应用并重新打开它。
事实证明我的productViewControllerDidFinish
方法没有被调用。
我有一个包含SKStoreProductViewControllerDelegate的表视图控制器,并且我在同一个类中显示和解除商店视图,那么为什么不调用委托方法?
- (void)toStore:(Button*)sender {
SKStoreProductViewController *storeProductViewController = [[SKStoreProductViewController alloc] init];
[storeProductViewController loadProductWithParameters:@{SKStoreProductParameterITunesItemIdentifier : @"stuff"} completionBlock:^(BOOL result, NSError *error) {
if (error) {
NSLog(@"Error %@ with User Info %@.", error, [error userInfo]);
} else {
[self presentViewController:storeProductViewController animated:YES completion:nil];
}
}];
}
- (void)productViewControllerDidFinish:(SKStoreProductViewController*)viewController {
[self dismissViewControllerAnimated:YES completion:nil];
}
两者都在UITableViewController中。提前谢谢!
答案 0 :(得分:0)
设置SKStoreProductViewController控制器的委托..你错过了那个......
将其设置在对象分配之下..
storeProductViewController.delegate = self;