InAppSettings 1.0.0

InAppSettings 1.0.0

测试已测试
语言 Obj-CObjective C
许可证 MIT
发布最新发布2014年12月

David Keegan维护。




  • David Keegan

InAppSettings是一款开源的iPhone和iPod touch框架,可以在应用程序中显示Settings.bundle中的设置。

关于应用程序设置应该放在应用程序中还是设置应用程序中,已经有很多争议。InAppSettings是一款开源框架,旨在一次性解决这个问题,通过允许开发者轻松地在他们的应用程序中实现与设置应用程序相同的设置。InAppSettings使用同一的Settings.bundle,因此不会复制文件或工作。只需将InAppSettings添加到应用程序的项目中,并从代码或Interface Builder调用其视图控制器,就完成啦!InAppSettings的Wiki包含一份完整的指南,包括示例代码,用于将InAppSettings添加到iPhone或iPod touch应用程序中。

作者:David Keegan

感谢

  • Shayne Sweeney
  • Hendrik Kueck
  • Peter Greis
  • Kurt Arnlund

功能

  • 100%重新实现了设置应用程序的外观和功能。
  • 可以轻松地将InAppSettings添加到任何导航控制器中,从代码或Interface Builder,InAppSettings还可以作为模态视图显示。
  • 支持所有iPhone和iPod Touch操作系统版本,2.0及以上。
  • 支持设置语言本地化。
  • InAppSettings包含一个类方法,用于初始化Settings.bundle中的所有用户默认设置。
  • InAppSettings通过为内置应用程序标题和打开URL添加可选值,为Settings.bundle添加了额外的功能。
  • 示例项目演示了如何从代码、Interface Builder和模态视图使用InAppSettings

许可证

InAppSettings由David Keegan开发,并根据MIT许可证分发,因此可以用于免费或商业应用程序。有关更多信息,请参阅LICENSE文件

如何将InAppSettings添加到您的应用程序中

InAppSettings拖入Xcode中的项目。确保对话框看起来像这样,然后按'添加'。

如果您将在多个项目中使用InAppSettings,并且我希望您这样做:),请将InAppSettings添加到Xcode首选项中的源树。如果您这样做,则'添加'设置应如下所示,然后按'添加'。

InAppSettingsViewController

InAppSettingsViewController 是一个继承自 UIViewController 的子类,用于展示 Settings.bundle 中的设置。它可以通过代码和界面构建器使用。

从代码中使用 InAppSettingsViewController

#import "InAppSettings.h"

- (IBAction)showSettings{
    InAppSettingsViewController *settings = [[InAppSettingsViewController alloc] init];
    [self.navigationController pushViewController:settings animated:YES];
    [settings release];
}

从界面构建器中使用 InAppSettingsViewController

要在界面构建器中使用 InAppSettingsViewController,请将任意 UIViewController 的类类型更改为 InAppSettingsViewController

为了正确运行,InAppSettingsViewController 必须添加到现有的 UINavigationController 中。

InAppSettingsTestApp 展示了如何通过代码和界面构建器使用 InAppSettingsViewController

InAppSettingsModalViewController

InAppSettingsModalViewController 是一个继承自 UIViewController 的子类,可以创建自己的 UINavigationController。它旨在作为模态视图使用,并带有用于关闭视图的“完成”按钮。

如何从代码中使用 InAppSettingsModalViewController

#import "InAppSettings.h"

- (IBAction)presentSettings{
    InAppSettingsModalViewController *settings = [[InAppSettingsModalViewController alloc] init];
    [self presentModalViewController:settings animated:YES];
    [settings release];
}

InAppSettingsModalViewController 不应从界面构建器中使用。

InAppSettingsTestApp 展示了如何将 InAppSettingsModalViewController 作为模态视图使用。

[InAppSettings registerDefaults]

Settings.bundle 中的用户默认设置在启动时未初始化,只有当在设置应用中查看时才初始化。InAppSettings 有一个可以调用以初始化 Settings.bundle 中所有用户默认设置的 registerDefaults 类方法。

如何从代码中使用 [InAppSettings registerDefaults]

应该从 AppDelegate 的 initialize 方法中调用 InAppSettingsregisterDefaults 方法。

#import "InAppSettings.h"

+ (void)initialize{
    if([self class] == [AppDelegate class]){
        [InAppSettings registerDefaults];
    }
}

'AppDelegate' 的名称需要更改为您应用程序 AppDelegate 类的名称。

自定义设置指定键

InAppTitle

InAppTitle 是一个可选的设置指定键,可以添加到任何设置指定键中。如果存在,此标题将在 InAppSettings 中使用。

<dict>
    <key>Type</key>
    <string>PSGroupSpecifier</string>
    <key>Title</key>
    <string>Change the theme of the app</string>
    <key>InAppTitle</key>
    <string>Change the theme of the app, these changes will take effect the next time the app is launched</string>
</dict>

设置应用将显示:“更改应用程序的主题”,但 InAppSettings 将显示:“更改应用程序的主题,这些更改将在下一次应用程序启动时生效”。

InAppURL

InAppTitle 是一个可选的设置指定键,可以添加到 PSTitleValueSpecifier 中。如果存在一个展开指示符将添加到单元格,当单元格被点击时将打开指定的 URL。

<dict>
    <key>Type</key>
    <string>PSTitleValueSpecifier</string>
    <key>Title</key>
    <string>Created by:</string>
    <key>Key</key>
    <string>testUrl</string>
    <key>DefaultValue</key>
    <string>kgn {+}</string>
    <key>InAppURL</key>
    <string>http://www.kgn.com</string>
</dict>

要打开网页,URL 必须以 "http://" 开头。

InAppSettingsTestApp

InAppSettingsTestApp 是一个用于测试 InAppSettings 的 Xcode 项目。它还展示了使用 InAppSettings 视图控制器和类方法的全部方式。