2012-09-30 17 views
15

Trong ứng dụng chúng tôi đang tạo, chúng tôi cần thêm một số màn hình phụ để định cấu hình ứng dụng.Phát hiện hoặc phản ứng với Truy cập có hướng dẫn?

Sẽ thật tuyệt nếu chúng tôi có thể thêm các nút bổ sung trên màn hình mở của ứng dụng, điều này chỉ hiển thị nếu iPad không có quyền truy cập được hướng dẫn.

Có thể phát hiện thiết bị hiện đang chạy với quyền truy cập được hướng dẫn và phản ứng với thiết bị đang được bật hoặc tắt không?

Trả lời

28

Bạn muốn một cái gì đó như thế này:

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

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

Nếu bạn muốn biết khi nào nó thay đổi ...

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

sau đó kiểm tra để xem nếu nó là bật hoặc tắt theo thử nghiệm đầu tiên .

+0

tôi có trie d điều này và nó luôn luôn trở về sai ... bất kỳ ý tưởng? – Tom

+3

Tính năng này chỉ hoạt động khi bạn kích hoạt quyền truy cập có hướng dẫn, tức là khi người dùng nhấn ba lần vào nút trang chủ và khởi động - Không phải khi thiết lập được thiết lập trong cài đặt trợ năng. – TerryB

2

Guided Access in depth at WWDC 2013 (bắt đầu từ 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 trở lên):

UIGuidedAccessRestrictionDelegate 

Getting the restriction state for specified restriction (iOS 7 trở lên):

Swift:

func UIGuidedAccessRestrictionStateForIdentifier(_ restrictionIdentifier: String) -> UIGuidedAccessRestrictionState 

obj-C

UIGuidedAccessRestrictionState UIGuidedAccessRestrictionStateForIdentifier(NSString *restrictionIdentifier); 
Các vấn đề liên quan