如何从我的应用程序启动我的设置包?

我正在为我的应用程序添加一个设置包,作为在我的首选项上获取GUI的廉价方式。 是否可以从我的应用程序中的button启动此function,或者我的用户是否必须始终通过内置设置应用程序手动访问?

他们可能不得不去设置应用程序,取决于你如何做。

请参阅这个文档,应用程序首选项部分。 以下是介绍中的相关部分:

将应用程序首选项添加到“设置”应用程序最适合于生产力型应用程序,并且在具有通常只configuration一次然后很less更改的首选项值的情况下。 例如,邮件应用程序使用这些首选项来存储用户的帐户信息和消息检查设置。 因为“设置”应用程序支持分层显示偏好设置,所以如果您有大量偏好设置,则从“设置”应用程序中操作偏好设置也更为合适。 在应用程序中提供相同的首选项可能需要太多的屏幕,并可能导致用户混淆。

当您的应用程序只有less数选项或用户可能需要定期更改的选项时,应仔细考虑“设置”应用程序是否适合他们。 例如,实用程序应用程序在其主视图背面提供了自定义configuration选项。 视图上的特殊控件将其翻转以显示选项,而另一个控件将翻转视图。 对于简单的应用程序来说,这种types的行为提供了对应用程序选项的即时访问,对于用户来说比去设置要方便得多。

更新

该链接已过期。 这是 “设置”捆绑包中的一个类似文档 。

对于iOs5,您可以直接打开设置:

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“prefs://”]];

回答我自己的问题:您确实可以使用NSUserDefaults来保存自己的应用程序首选项,而无需与系统设置集成。

例如,我的应用程序是一个实用程序应用程序,在FlipSide(用户在按下“i”button时获得的视图)上可以看到一些小设置。

请注意,我从两个来源find了这个信息。

  1. 在iPhone BootCamp的一系列报告中,Scott Leberknight顺带提到,他被告知应用程序的用户默认设置可能会或可能不会集成到设置应用程序中。

  2. BubbleLevel iPhone官方开发者页面的示例代码使用首选项来存储关卡的校准(在翻转视图中设置)

以下是LevelAppDelegate.m中的方法,用于在应用程序启动时加载首选项,并在结束时保存它:

// Invoked after the application has been launched and initialized but before it has received its first event. - (void)applicationDidFinishLaunching:(UIApplication *)application { // Set up the level view controller levelViewController = [[LevelViewController alloc] init]; [window addSubview:levelViewController.view]; // Restore calibration for device float restoredOffset = [[NSUserDefaults standardUserDefaults] floatForKey:BubbleLevelCalibrationOffsetKey]; levelViewController.calibrationOffset = restoredOffset; } // Invoked immediately before the application terminates. - (void)applicationWillTerminate:(UIApplication *)application { float calibrationOffset = levelViewController.calibrationOffset; NSNumber *offset = [NSNumber numberWithFloat:calibrationOffset]; [[NSUserDefaults standardUserDefaults] setObject:offset forKey:BubbleLevelCalibrationOffsetKey]; } 

但是,我想,对原始问题的正确答案是:

  1. 不,你不能从自己的应用程序启动设置UI(我还没有看到任何方式来做到这一点 – 可能是错误的,我猜 – 但我敢肯定,即使你可以从你的应用程序启动设置,说一个URL可以用来启动Safari的方式 – 你将无法从设置应用程序返回到你的应用程序,这将失败的目的)。

  2. 对于首选级别的持久性(与应用程序数据保存在文档,数据库或caching中相反),您有2个select:i)使用系统设置应用程序进行编辑ii)在您的应用程序中创build自己的控件

无论哪种情况,您都可以使用NSUserDefaults来获得实际的持久性。

我不知道有什么办法从您的应用程序启动Settings.app。 但是,为什么不把这些设置正确地集成到你的应用中? 你可以使用InAppSettingsKit来做到这一点。

不,你不能 – 他们必须退出你的应用程序并启动设置。 这是一个痛苦,如上所述,你必须做出一个devise决定。

我刚刚看到Aka-aki应用程序直接带我到设置应用程序的推送通知屏幕。 这是我第一次启动它。 所以这一定是可能的。 🙂