Обнаруживать или реагировать на управляемый доступ?

В приложении, которое мы создаем, нам нужно добавить дополнительные экраны для настройки приложения.

Было бы неплохо, если бы мы могли добавить дополнительные кнопки на начальном экране приложения, это видно только в том случае, если iPad не управляется.

Можно ли обнаружить, что устройство в настоящее время работает с управляемым доступом, и реагировать на его включение или отключение?

Ответы

Ответ 1

Вы хотите что-то вроде этого:

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

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

Если вы хотите узнать, когда он изменится...

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

затем проверьте, включено ли оно или нет в соответствии с первым тестом.

Ответ 2

"Глубоко пройденный доступ на WWDC 2013" (начало в 39:26)


Проверьте, включен ли управляемый доступ (iOS 6+):

UIAccessibilityIsGuidedAccessEnabled()

Отвечать на изменения статуса управляемого доступа (iOS 6+):

UIAccessibilityGuidedAccessStatusDidChangeNotification

Добавить пользовательские ограничения в режиме управляемого доступа (iOS 7+):

UIGuidedAccessRestrictionDelegate

Получение состояния ограничения для указанного ограничения (iOS 7+):

Swift:

func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState

Obj-C

UIGuidedAccessRestrictionState UIGuidedAccessRestrictionStateForIdentifier(NSString *restrictionIdentifier);