Обнаруживать или реагировать на управляемый доступ?
В приложении, которое мы создаем, нам нужно добавить дополнительные экраны для настройки приложения.
Было бы неплохо, если бы мы могли добавить дополнительные кнопки на начальном экране приложения, это видно только в том случае, если 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);