2012-03-12 126 views
7

是否有機會通過單擊按鈕在iOS中顯示settings.app?它應該與iOS 5.1一起工作,所以「prefs:root ...」url是沒有選擇的。iOS中的訪問設置應用程序

你知道如何解決這個問題嗎?

回答

9

我知道這個問題是關於5.1具體來說,但如果任何人有興趣:

由於iOS 8的,很可能採取從您的應用程序用戶直接進入設置應用。它們將與您的應用的特定「設置」頁面深入鏈接,但它們可以退出到頂級設置屏幕。

UPDATE:

感謝帕維爾的評論,我簡化了if語句,避免在iOS 7

UPDATE 2 EXC_BAD_ACCESS:如果您的部署目標設置爲

8.0或以上,Xcode 6.3會給你以下警告:

Comparison of address of 'UIApplicationOpenSettingsURLString' not equal to a null pointer is always true 

這是因爲該功能從8.0開始可用,所以該指針永遠不會是NULL。如果您的部署目標是8.0+,只需刪除下面的if語句。

if (&UIApplicationOpenSettingsURLString != NULL) { 
    NSURL *appSettings = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
    [[UIApplication sharedApplication] openURL:appSettings]; 
} 
+3

UIApplicationOpenSettingsURLString導致上iOS7一個EXC_BAD_ACCESS。更好地這樣: if(&UIApplicationOpenSettingsURLString) – Pavel 2014-09-06 14:15:10

+0

謝謝@Pavel,我更新了我的代碼示例。 – djibouti33 2014-09-08 15:40:19

1

在iOS 8的蘋果給我們的可能去應用程序設置直接從我們的應用程序

你可以使用這個代碼:

- (IBAction)openSettings:(id)sender { 
    BOOL canOpenSettings = (UIApplicationOpenSettingsURLString != NULL); 
    if (canOpenSettings) { 
     NSURL *url = [NSURL URLWithString:UIApplicationOpenSettingsURLString]; 
     [[UIApplication sharedApplication] openURL:url]; 
    } 
}