2011-04-13 1 views
2

그래서이 메서드를 사용하여 사용자가 설정 번들에서 선택한 항목을 기반으로 특정 테마를로드하려고합니다. NSLog를 삽입하면 기본 테마 (Modern Theme)가로드되지만 Pink 테마는 변경되지 않습니다.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

0

- (void)applicationWillResignActive:(UIApplication *)application 

방법은 발생합니다.

나는 거의의 ViewController의

-(void)viewDidAppear:(BOOL)animated 

방법으로 테마를로드하는 것입니다.