2012-09-30 16 views
15

En una aplicación que estamos creando, tenemos que agregar algunas pantallas adicionales para configurar la aplicación.¿Detecta o reacciona al acceso guiado?

Sería bueno si pudiéramos agregar botones adicionales en la pantalla de inicio de la aplicación, que solo es visible si el iPad no está en acceso guiado.

¿Es posible detectar que el dispositivo se está ejecutando actualmente con acceso guiado y reacciona si está habilitado o deshabilitado?

Respuesta

28

¿Quieres algo como esto:

NSLog(@"Accessabilitiy enabled: %@", UIAccessibilityIsGuidedAccessEnabled() ? @"YES" : @"NO"); 

if (!UIAccessibilityIsGuidedAccessEnabled()) { 
    // show something since I'm not in guided access 
} 

Si quieres saber cuando cambia ...

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(guidedAccessChanged) name:UIAccessibilityGuidedAccessStatusDidChangeNotification object:nil]; 

a continuación, comprobar para ver si está encendido o apagado según la primera prueba .

+0

I tener trie d esto y siempre devuelve falso ... alguna idea? – Tom

+3

Esto solo funciona cuando se activa el acceso guiado, es decir, cuando el usuario toca tres veces el botón de inicio y lo inicia, no cuando está configurado en la configuración de accesibilidad. – TerryB

2

Guided Access in depth at WWDC 2013 (comienza a 39:26)


Check if Guided Access is Enabled (iOS 6+):

UIAccessibilityIsGuidedAccessEnabled() 

Respond to Guided Access status changes (iOS 6+):

UIAccessibilityGuidedAccessStatusDidChangeNotification 

Add custom restrictions while in Guided Access mode (IOS 7+):

UIGuidedAccessRestrictionDelegate 

Getting the restriction state for specified restriction (IOS 7+):

Swift:

func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState 

Obj-C

UIGuidedAccessRestrictionState UIGuidedAccessRestrictionStateForIdentifier(NSString *restrictionIdentifier);