未调用SKStoreProductViewControllerDelegate方法

时间:2015-05-26 04:51:33

标签: ios objective-c storekit

我只是尝试在我的应用程序中实现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中。提前谢谢!

1 个答案:

答案 0 :(得分:0)

设置SKStoreProductViewController控制器的委托..你错过了那个......

将其设置在对象分配之下..

   storeProductViewController.delegate = self;