1.首先创建iPhone应用工程
2.新建Settings Bundle文件
菜单->File->New->New File...
选择Settings Bundle创建文件,见上图
选中Root.plist并将Preference Items打开
这个编辑器很不好用,建议使用Source Code来编辑,在Root.plist文件上按鼠标右键,如下图
3.编辑Root.plist
具体的编辑就不写了,主要需要注意
“Default Value”项最好填写上,作为默认值初始化用
4.编写程序
首先修改ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
{
IBOutlet UILabel *lblTite;
IBOutlet UILabel *lblText;
IBOutlet UILabel *lblToogle;
IBOutlet UILabel *lblSlider;
IBOutlet UILabel *lblBackground;
}
@property (nonatomic, retain) UILabel *lblTite;
@property (nonatomic, retain) UILabel *lblText;
@property (nonatomic, retain) UILabel *lblSlider;
@property (nonatomic, retain) UILabel *lblToogle;
@property (nonatomic, retain) UILabel *lblBackground;
@end
修改ViewController.m
@synthesize lblTite,lblText,lblToogle,lblSlider,lblBackground;
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
NSString *titeValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"title_preference"];
NSString *textValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"text_preference"];
NSString *toogleValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"enabled_preference"];
NSString *sliderValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"slider_preference"];
NSString *backgroundValue = [[NSUserDefaults standardUserDefaults] stringForKey:@"backgroud_preference"];
lblTite.text = [NSString stringWithFormat:@"Title Value: %@", titeValue];
lblText.text = [NSString stringWithFormat:@"Text Value: %@", textValue];
lblToogle.text = [NSString stringWithFormat:@"Toggle Control Value: %@", toogleValue];
lblSlider.text = [NSString stringWithFormat:@"Slider Value: %@", sliderValue];
lblBackground.text = [NSString stringWithFormat:@"Selected color value: %@", backgroundValue];
}
修改AppDelegate.m
// 获取默认设置
- (void)registerDefaultsFromSettingsBundle
{
NSString *settingsBundle = [[NSBundle mainBundle] pathForResource:@"Settings" ofType:@"bundle"];
if(!settingsBundle) {
NSLog(@"Could not find Settings.bundle");
return;
}
NSDictionary *settings = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"Root.plist"]];
NSArray *preferences = [settings objectForKey:@"PreferenceSpecifiers"];
NSMutableDictionary *defaultsToRegister = [[NSMutableDictionary alloc] initWithCapacity:[preferences count]];
for(NSDictionary *prefSpecification in preferences) {
NSString *key = [prefSpecification objectForKey:@"Key"];
if(key) {
[defaultsToRegister setObject:[prefSpecification objectForKey:@"DefaultValue"] forKey:key];
}
}
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister];
//[defaultsToRegister release];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *title = [defaults stringForKey:@"title_preference"];
if(!title) {
// 加载默认配置
[self performSelector:@selector(registerDefaultsFromSettingsBundle)];
}
return YES;
}
例子下载:BundleSettings.zip