【发布时间】:2012-05-29 04:22:54
【问题描述】:
我正在尝试根据 setting.bundle 中的切换开关状态更改我的应用程序的 mainView。我想设置的默认设置为 NO,我已经设置了。但似乎我遗漏了一些东西,我似乎可以让视图随我的代码更改的唯一方法是更改默认值。我在 applicationDidFinishLaunchingWithOptions 的 delegate.m 文件中执行此操作。请任何帮助都会很棒!
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//Registers the defaults.
NSUserDefaults *metricDefaults = [NSUserDefaults standardUserDefaults];
[metricDefaults registerDefaults:[NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:@"metric_preferences"]];
BOOL metricDisabled = [metricDefaults boolForKey:@"metric_preference"];
[metricDefaults synchronize];
//Change MainView based on Metric setting.
if (metricDisabled) {
//Standard View.
MainViewController *aController = [[MainViewController alloc] initWithNibName:@"MainView" bundle:nil];
self.mainViewController = aController;
[aController release];
mainViewController.view.frame = [UIScreen mainScreen].applicationFrame;
[window addSubview:[mainViewController view]];
[window makeKeyAndVisible];
return YES;
} else {
//Metric View.
MainViewController *aController = [[MainViewController alloc] initWithNibName:@"MainViewMetric" bundle:nil];
self.mainViewController = aController;
[aController release];
mainViewController.view.frame = [UIScreen mainScreen].applicationFrame;
[window addSubview:[mainViewController view]];
[window makeKeyAndVisible];
return YES;
}
}
【问题讨论】:
-
如果要检查拨动开关的状态,为什么要设置
[metricDefaults setBool:NO forKey:@"metric_preference"];?摆脱它并再次运行。 -
也试过了,如果我去掉那条线,它只会加载 MainView,无论切换开关的状态如何,它都不会加载 MainViewMetric。
标签: iphone ios xcode settings.bundle