iOS 4的Circumvent截图

我想在应用程序切换之前清除视图,更改启动图像,以便在下次进入应用程序时不会显示某些不安全的数据。

iOS 4提供了applicationDidEnterBackgroundapplicationWillResignActive …但是,在我有机会清除视图之前,这两者似乎都不能阻止截图。

-applicationDidEnterBackground在屏幕截图前被调用。 原来我只是不正确地隐藏了我的观点。

清除视图的简单方法是在我的UIView上设置隐藏属性。

只需要添加一小段代码,以快速解决这个问题,使用初始化时声明的完整背景图像并隐藏它。

您可以通过注册到通知中来隐藏每个视图的特定内容,并在视图中隐藏您要隐藏的特定视图(标签)。

另一个解决scheme是检查哪个视图控制器正在显示,并在不显示数据的情况下在该视图控制器视图的不同截图之间切换。

最简单的方法是:

 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIImageView *backgroundView_ = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"Default.png"]]; self.backgroundView = backgroundView_; [backgroundView_ release]; // Add other controllers views // ... [self.window bringSubviewToFront:self.backgroundView]; self.backgroundView.hidden = YES; [self.window makeKeyAndVisible]; } - (void)applicationDidBecomeActive:(UIApplication *)application { self.backgroundView.hidden = YES; } - (void)applicationDidEnterBackground:(UIApplication *)application { self.backgroundView.hidden = NO; }