开发者

Circumvent screenshot for iOS 4

I would like to clear a view before an application is switched away from, to change the launch image so that the next time the app is entered it will not display some insecure data.

iOS 4 provides applicationDidEnterBackground and applicationWillResignActive...however, neither of these seem to be able to p开发者_高级运维revent the screenshot from being taken before I have a chance to clear the view.


-applicationDidEnterBackground does get called before the screenshot. Turns out I was simply hiding my view improperly.

A simple way to clear the view was to set the hidden property on my UIView.


Just to add a snippet of code for a fast solution to this problem using a full background image declared on the initialization and hiding it.

You can do a more sofisticated hide of the particular contents of each view by registering to the notification, and in the views hide the particular views (labels) you want to hide.

Another solution is to check which viewcontroller is showing and switch between differente screenshots of the view of this viewcontroller without the data shown.

The easiest way:

- (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;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜