我正在我的应用中显示模态应用商店,一切都按预期工作。但是,我希望能够在用户关闭应用程序时关闭模式。这可能吗?
这就是我目前的设置方式:
if (param != nil && NSClassFromString(@"SKStoreProductViewController"))
{
NSDictionary *appParameters = @{ SKStoreProductParameterITunesItemIdentifier: param };
SKStoreProductViewController *productViewController = [[SKStoreProductViewController alloc] init];
[productViewController setDelegate:self];
[productViewController loadProductWithParameters:appParameters
completionBlock:^(BOOL result, NSError *error)
{
}];
[self presentViewController:productViewController
animated:YES
completion:^{
}];
}
这通过允许用户通过单击关闭按钮来关闭模式来完成设置。
- (void)productViewControllerDidFinishSKStoreProductViewController *)viewController
{
[viewController dismissViewControllerAnimated:YES completion:nil];
}
我在想我可以改变它,所以 SKStoreProductViewController *productViewController 是一个成员变量,当应用程序停用时调用一个函数来关闭它,但是这不会在 iOS 6 下编译任何东西,对吗?
Best Answer-推荐答案 strong>
只需在 View Controller 中保留对该 View Controller 的引用即可:
@property (nonatomic, strong) UIViewController * skStoreProductViewController;
然后创建产品 View Controller :
// Probably in -viewDidLoad ?
if (param != nil && NSClassFromString(@"SKStoreProductViewController"))
{
self.skStoreProuctViewController = [[SKStoreProductViewController alloc] init];
// etc...
}
现在,当用户将您的应用置于后台时,您可以在 View Controller 中监听该事件的通知。设置一个选择器来运行并使用它来关闭你的 View Controller :
// Probably in -viewDidLoad
[[NSNotificationCenter defaultCenter] addObserver:self selectorselector(shouldDismiss name:UIApplicationDidEnterBackgroundNotification object:nil];
那么……
- (void)shouldDismissNSNotification*)notification {
[self.skStoreProductViewController dismissViewControllerAnimated:YES completion:nil]
}
关于ios - 在应用关闭时关闭模态应用商店,我们在Stack Overflow上找到一个类似的问题:
https://stackoverflow.com/questions/22485864/
|