2011-04-13 55 views
2

所以我試圖使用這種方法來加載基於用戶在設置包中選擇的某個主題。當我插入NSLog時,它會加載默認的他們(現代主題),但它永遠不會變成粉紅色的主題。iPhone didFinishLaunchingWithOptions方法

每次啓動應用程序時都會加載此方法,即使應用程序仍在後臺運行。

否則,如果我想使用設置包,我還可以在哪裏做到這一點。

- (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; 
} 

回答

4

您是否嘗試過將您的代碼放入applicationDidBecomeActive:?無論是在初始啓動還是從後臺恢復,這個保證都會被調用。

Reference docs

+0

這實際上是正確的解決方案。還有另一個問題導致錯誤。謝謝 – Vikings 2011-04-14 04:55:24

0

方法

- (void)applicationWillResignActive:(UIApplication *)application 

,當應用程序從所述背景恢復被激發。

我幾乎加載主題中的ViewController的

-(void)viewDidAppear:(BOOL)animated 

方法。

相關問題