iOS中的“访问设置”应用

时间:2012-03-12 09:16:02

标签: iphone ios xcode ios5 settings

是否有机会通过点击按钮在iOS中显示settings.app?它应该适用于iOS 5.1,因此“prefs:root ...”url是没有选择的。

你知道如何解决这个问题吗?

5 个答案:

答案 0 :(得分:9)

我知道问题是关于5.1的具体问题,但是如果有其他人感兴趣的话:

从iOS 8开始,可以将用户从您的应用直接带入“设置”应用。它们将深入链接到您应用的特定“设置”页面,但可以退回到顶级“设置”屏幕。

<强>更新

感谢Pavel的评论,我简化了if语句并避免了iOS 7上的EXC_BAD_ACCESS。

更新2:

如果您的部署目标设置为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];
} 

答案 1 :(得分:4)

您无法在iOS 5.1上执行此操作。很可能Apple故意删除了这种能力(你会得到“请输入有效的URL”,而Twitter仍然可以调用设置)。请参阅:

答案 2 :(得分:1)

在iOS 8上,Apple让我们可以直接从我们的应用程序进入应用程序设置

您可以应用此代码:

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

答案 3 :(得分:0)

iOS6显示了一个选项,可以直接从“AlertView”(自动显示)打开设置应用程序,如果它检测到您是否尝试在没有设置这些帐户的情况下发布到FB或Twitter。

I have elaborated this over here

答案 4 :(得分:0)

方法openURL:现在已弃用。


iOS 10 +

打开设置URL(或与此相关的任何URL)的正确方法如下:

NSURL *settingsURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];

[[UIApplication sharedApplication] openURL:settingsURL options:@{} completionHandler:^(BOOL success) {

    // Do anything here 

}];