在iOS中以编程方式打开设置

时间:2018-11-01 06:27:09

标签: objective-c ios11

我正在从我的应用程序中打开设备设置页面。当我通过iPhone X(iOS11)和iPhone 8打开时,它将转到应用程序设置。但是,当我通过iPhone 8 Plus和iPhone SE打开时,它会转到主页设置页面。 我需要打开iPhone的家庭设置页面,例如iPhone 8 Plus(打开家庭设置页面)。我正在运行以下代码。

UIApplication *application = [UIApplication sharedApplication];
NSURL *settingsURL = [NSURL URLWithString:UIApplicationOpenSettingsURLString];
[application openURL:settingsURL options:@{} completionHandler:^(BOOL success) {
    if (success) {
        NSLog(@"Opened url");
    }
}];

我的问题是,我创建了一个新项目,并运行了上面的代码。它的工作正常。我可以导航到同一iPhone X中的设备主页设置页面。 但是当我在iPhone X的项目中运行此代码时,它将转到应用程序设置屏幕,我不知道我错过了什么。 如果可以的话请帮助我。 预先感谢。

1 个答案:

答案 0 :(得分:1)

  

全局变量

     

UIApplicationOpenSettingsURLString

     

用于创建可以传递给openURL:方法的URL。当您打开根据此字符串构建的URL时,系统将启动“设置”应用程序并显示该应用程序的自定义设置(如果有的话)。

https://developer.apple.com/documentation/uikit/uiapplicationopensettingsurlstring?language=objc

这来自Apple官方文档。我的猜测是您的应用程序具有自己的设置页面,这就是openURL函数将您带到应用程序的设置页面而不是设置主页的原因。