2010-07-28 24 views
11

Me gustaría borrar una vista antes de que se cambie una aplicación, para cambiar la imagen de inicio para que la próxima vez que se ingrese la aplicación no muestre datos inseguros.Captura de pantalla Circumvent para iOS 4

iOS 4 proporciona applicationDidEnterBackground y applicationWillResignActive ... sin embargo, ninguno de estos parece ser capaz de evitar que se tome la captura de pantalla antes de que tenga la oportunidad de borrar la vista.

+2

¿Seguro? '-applicationDidEnterBackground:' se invoca antes de tomar la captura de pantalla. – kennytm

+0

Estás en lo correcto. Mi error. – akaru

Respuesta

8

-applicationDidEnterBackground se llama antes de la captura de pantalla. Resulta que simplemente estaba ocultando mi vista incorrectamente.

Una manera simple de borrar la vista era establecer la propiedad oculta en mi UIView.

+1

Al intentar capturar una captura de pantalla presionando juntos el botón de inicio y el botón de encendido (que se encuentra en el lado superior derecho del dispositivo), sin obtener ningún método de delegado de aplicación en iOS (trabajando con iOS 6). Por favor ayuda. – kushalrshah

1

Solo para agregar un fragmento de código para una solución rápida a este problema usando una imagen de fondo completa declarada en la inicialización y ocultándola.

Puede ocultar el contenido de cada vista de forma más sofisticada registrándose en la notificación, y en las vistas ocultar las vistas particulares (etiquetas) que desea ocultar.

Otra solución es comprobar qué controlador de visualización se muestra y cambiar entre diferentes capturas de pantalla de la vista de este controlador de vista sin los datos que se muestran.

La forma más sencilla:

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