我正在为我的应用程序添加一个设置包,作为在我的首选项上获取GUI的便宜方式。是否可以从我的应用程序中的按钮启动它,或者我的用户是否总是必须通过内置设置应用程序手动访问它?
答案 0 :(得分:9)
他们可能必须转到设置应用程序,具体取决于您的操作方式。
请参阅this document,“应用程序首选项”部分。以下是介绍中的相关部分:
将您的应用程序首选项添加到“设置”应用程序最适合生产力型应用程序,并且在您具有通常配置一次然后很少更改的首选项值的情况下。例如,Mail应用程序使用这些首选项来存储用户的帐户信息和消息检查设置。由于“设置”应用程序支持分层显示首选项,因此当您拥有大量首选项时,从“设置”应用程序中操作首选项也更为合适。在您的应用程序中提供相同的首选项可能需要太多的屏幕,并可能导致用户混淆。
当您的应用程序只有几个选项或者有用户可能希望定期更改的选项时,您应该仔细考虑“设置”应用程序是否适合他们。例如,实用程序应用程序在其主视图的背面提供自定义配置选项。视图上的特殊控件将其翻转以显示选项,另一个控件将视图翻转回来。对于简单的应用程序,这种类型的行为提供了对应用程序选项的即时访问,并且对用户来说比转到设置更方便。
<强>更新强>
该链接已过期。设置包上的This is a similar document。
答案 1 :(得分:5)
对于iOs5,您可以直接打开设置:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@“prefs://”]];
答案 2 :(得分:4)
回答了我自己的问题:您确实可以使用NSUserDefaults保存自己的应用程序首选项,而无需与系统设置集成。
例如,我的应用程序是一个实用程序应用程序,其中有一个小UI,可用于FlipSide上的几个设置(用户在按下“i”按钮时可以看到的视图)。
请注意,我从两个来源找到了这些信息。
在一篇来自iPhone BootCamp的大量报告中,Scott Leberknight顺便提到,他被告知应用程序用户默认值可能会或可能不会集成到设置应用程序中。
来自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];
}
然而,我想,对原始问题的正确答案是:
不 - 你无法从你自己的应用程序启动设置界面(我没有看到任何方法这样做 - 我猜错了 - 但我很确定即使你可以启动您的应用中的设置,比如说URL可用于启动Safari的方式 - 您将无法从“设置”应用返回到您的应用中,这会破坏目的。)
对于偏好级别持久性(与文档,数据库或缓存中保留的应用程序数据相对),您有2个选择 i)使用系统设置应用程序进行编辑 ii)在您的应用中创建自己的控件
在任何一种情况下,您都可以使用NSUserDefaults来实现持久性。
答案 3 :(得分:2)
我不知道有什么方法可以从您的应用启动Settings.app。但是,为什么不在您的应用中集成设置?您可以使用InAppSettingsKit轻松完成此操作。
答案 4 :(得分:1)
不,你不能 - 他们必须退出你的应用并启动设置。这是一种痛苦,如上所述,你必须做出一个设计决定。
答案 5 :(得分:1)
我刚看到Aka-aki应用程序直接将我带到设置应用程序的推送通知屏幕。它是我第一次推出它时这样做的。所以一定是可能的。 :)