当用户按下主页按钮但在应用程序进入后台之前,如何从应用程序窗口的 rootViewController 呈现 viewController? [复制]
Posted
技术标签:
【中文标题】当用户按下主页按钮但在应用程序进入后台之前,如何从应用程序窗口的 rootViewController 呈现 viewController? [复制]【英文标题】:How can I present an viewController from Application window's rootViewController when user press home button, but before application enter background? [duplicate] 【发布时间】:2014-02-20 16:48:35 【问题描述】:我有一个包含一些敏感信息的应用程序,我不希望其他人在应用程序进入后台之前对屏幕进行快照,所以我想在用户按下主页按钮后在屏幕上呈现一个模式锁定视图控制器。我试过这段代码
- (void)applicationWillResignActive:(UIApplication *)application
PatternLockViewController *pvc = [[SMICConfig sharedSMICConfig] patternLockVC];
if (!(pvc.isViewLoaded && pvc.view.window) && [SMICConfig sharedSMICConfig].isCookie)
[self.window.rootViewController presentViewController:pvc animated:NO completion:nil];
但 PatternLockViewController 仅在应用程序进入前台后出现。因此,当应用程序处于后台时,您可以双击主页按钮来查看一些信息。
腾讯qq的图案锁定非常好。我只是想实现这个效果。
谁能帮帮我?谢谢
【问题讨论】:
【参考方案1】:你可以通过调用ignoreSnapshotOnNextApplicationLaunch
Apple's documentation来告诉ios7在下一个启动周期避免使用最近的快照图像
以下是我为我的应用程序实现的方式。希望对您有所帮助。
- (void)applicationWillResignActive:(UIApplication *)application
[application ignoreSnapshotOnNextApplicationLaunch];
self.imageView = [[UIImageView alloc]initWithFrame:[self.window frame]];
[self.imageView setImage:[UIImage imageNamed:@"Default-568h"]];
[self.window addSubview: self.imageView];
- (void)applicationDidBecomeActive:(UIApplication *)application
if (self.imageView != nil)
[self.imageView removeFromSuperview];
self.imageView = nil;
【讨论】:
ignoreSnapshotOnNextApplicationLaunch
仅适用于iOS7及更高版本,如果我的目标是ios 6或之前,有没有办法处理这个问题?
iOS6 没有多任务处理 :],我认为这是best question and answer,感谢您的解决方案
我的代码在我的物理设备上完美运行>_
以上是关于当用户按下主页按钮但在应用程序进入后台之前,如何从应用程序窗口的 rootViewController 呈现 viewController? [复制]的主要内容,如果未能解决你的问题,请参考以下文章