我是IOS开发的新手 我想从由Objective C开发的最新应用程序中删除我的应用程序。 我在
中尝试了 UIApplicationExitsonSuspendinfo.plist
,但是info.plist中没有显示运气应用程序。 谁可以帮我这个事。 在此先感谢!!!
您可以使用覆盖窗口的概念。
当应用程序退出活动状态时,您将显示封面,并且系统将对该封面进行快照,而不是最后一个可见的UIViewController。
当应用程序启动时,您可以隐藏并取消分配封面。
这是示例
#import "AppDelegate.h"
@interface AppDelegate ()
@property (nonatomic) UIWindow *coverWindow;
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
return YES;
}
- (void)applicationWillResignActive:(UIApplication *)application {
self.coverWindow = UIWindow.new;
self.coverWindow.rootViewController = UIViewController.new;
[self.coverWindow makeKeyAndVisible];
}
- (void)applicationDidBecomeActive:(UIApplication *)application {
[self.coverWindow removeFromSuperview];
self.coverWindow = nil;
}
@end
,
UIApplicationExitsOnSuspend
is deprecated。您不应该再使用它。有报道称苹果拒绝使用该密钥的应用程序。按照苹果:
已弃用
现在,系统会在以下情况下自动暂停应用程序,使其离开前台 他们不需要后台执行。有关更多信息,请参见 About the Background Execution Sequence。
因此,目前,您只能让Apple处理应用程序的后台状态。强制尝试以任何方式退出该应用都会导致被App Store拒绝。
更新
我刚注意到您的评论说您真正想要什么。为了防止后台快照,您可以向窗口添加自定义视图。这与下面的Mark Agranal发布的答案类似,但是事情是您不需要添加新的Window或新的ViewController。您可以简单地向窗口添加自定义视图,并在应用程序重新进入活动状态时删除该视图。在您的AppDelegate中:
// The view to use as a mask
@property (nonatomic,weak) UIView* coverView;
// Add the view to window
-(void)applicationWillResignActive:(UIApplication *)application
{
coverView = [[UIView alloc]initWithFrame:[self.window frame]];
[self.window addSubview:coverView];
}
// Remove the view to window
- (void)applicationDidBecomeActive:(UIApplication *)application
{
if(coverView != nil) {
[coverView removeFromSuperview];
coverView = nil;
}
}
请注意,您可以使用上述方法将任何视图添加到窗口。系统将对添加的视图进行截屏,因此敏感的用户数据将受到保护。