如何在iOS内部重启应用程序?

时间:2014-04-10 18:31:24

标签: ios objective-c in-app-purchase

我一直在尝试将应用内购买合并到我的iOS应用中,想要通过屏幕上显示广告而烦恼的用户可以通过购买产品来禁用这些广告。该应用使用UITabBarController,用户可以购买产品的屏幕与用户看到广告的屏幕不同 - 换句话说,我使用设置在UITabBarController中不同标签的不同视图控制器。

但是,当用户完成购买产品后,他们仍然会在屏幕上看到这些广告,并且只有在用户下次启动应用时才会将这些广告从屏幕上完全删除。

但是,Apple文档推断他们拒绝强制用户重新启动应用的应用。我认为这包括我现在正在讨论的情况,所以我想知道如何在内部重新启动应用程序 - 换句话说,我想重新启动应用程序,好像它只是在应用程序中从头开始启动,可能是调用UIApplication及其方法或类似的东西。

如何以这种方式重启应用?或者也许这是一个更好的方式来应对这个购买问题?此外,如果可以在应用内重新启动,我是否应该在管理应用内购买的视图控制器中或SKProductsRequest中编写付款代码(SKPaymentTransactionObserverAppDelegate.m) ?

我使用iOS 7.1和Xcode 5.1。

2 个答案:

答案 0 :(得分:1)

只需隐藏AdBannerView即可。您可以在NSUserDefaults中设置一个用户进行购买的标记,并在显示包含广告的视图时触发该标记。

请参阅:Programmatically hiding Apple iAd ADBannerView

答案 1 :(得分:0)

您还可以更改Tabbar&的框架。当用户购买没有广告的应用时,请更改其高度 并使用sendSubviewToBack方法将adbanner发送回去 希望这会对你有所帮助。