代码之家  ›  专栏  ›  技术社区  ›  Lounges

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

  •  5
  • Lounges  · 技术社区  · 16 年前

    6 回复  |  直到 11 年前
        1
  •  9
  •   Community CDub    4 年前

    根据您的操作方式,他们可能必须转到设置应用程序。

    this document,

    将应用程序首选项添加到“设置”应用程序最适合于生产型应用程序,也最适合于您的首选项值通常只配置一次,然后很少更改的情况。例如,邮件应用程序使用这些首选项来存储用户帐户信息和邮件检查设置。由于“设置”应用程序支持按层次显示首选项,因此当您有大量首选项时,从“设置”应用程序操纵首选项也更合适。在应用程序中提供相同的首选项集可能需要太多的屏幕,并可能导致用户混淆。

    当您的应用程序只有几个选项或用户可能希望定期更改的选项时,您应该仔细考虑设置应用程序是否适合这些选项。例如,实用程序应用程序在其主视图的背面提供自定义配置选项。视图上的一个特殊控件将其翻转以显示选项,另一个控件将视图翻转回来。对于简单的应用程序,这种类型的行为提供了对应用程序选项的即时访问,并且对用户来说比访问设置方便得多。

    使现代化

    链接已过期。 This is a similar document

        2
  •  5
  •   Tamara    13 年前

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

        3
  •  4
  •   Rhubarb    16 年前

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

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

    2. 来自iphone官方开发者页面的BubbleLevel示例代码使用首选项存储级别校准(在flipside视图上设置)

    以下是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. 对于首选项级别的持久性(与文档、数据库或缓存中持久化的应用程序数据相反),您有2种选择 i) 使用系统设置应用程序进行编辑 ii)在应用程序中创建自己的控件

        4
  •  2
  •   Ortwin Gentz    13 年前

    我不知道有什么方法可以从你的应用启动Settings.app。但是,为什么不在应用程序中集成这些设置呢?你可以用 InAppSettingsKit 很容易做到这一点。

        5
  •  1
  •   drewh    16 年前

    不,你不能--他们必须退出你的应用程序并启动设置。这是一种痛苦,如上所述,您必须做出设计决策。

        6
  •  1
  •   Vikram Kriplaney    15 年前

    我刚刚看到Aka-aki应用程序将我直接带到设置应用程序的推送通知屏幕。我第一次发布它时它就这样做了。所以这一定是可能的