所以我尝试使用此方法根据用户在设置包中选择的内容加载某个主题。当我插入NSLog时,它将加载默认值(现代主题),但它永远不会更改为粉红色主题。
每次启动应用时都会加载此方法,即使该应用仍在后台运行。
否则,如果我想使用设置包,我还可以在哪里做到这一点。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
NSDictionary *userDefaultsDefaults = [NSDictionary dictionaryWithObjectsAndKeys: @"Modern Theme", @"theme", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:userDefaultsDefaults];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
theme =[defaults objectForKey:@"theme"];
NSLog(@"%@", theme);
if ([theme isEqualToString:@"Modern Theme"]) {
viewController = [[viewTwo alloc] initWithNibName:@"viewTwo" bundle:nil];
}
else {
viewController = [[viewOne alloc] initWithNibName:@"viewOne" bundle:nil];
}
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
}
答案 0 :(得分:4)
您是否尝试过将代码放入applicationDidBecomeActive:
?无论是在初始启动还是从后台恢复,都可以保证调用该版本。
答案 1 :(得分:0)
方法
- (void)applicationWillResignActive:(UIApplication *)application
当应用程序从后台恢复时会触发。
我几乎在ViewController的
中加载主题-(void)viewDidAppear:(BOOL)animated
方法