2011-04-25 1 views
0

안녕하세요, 테마 설정을 시도하고 설정 앱 (설정 번들)을 통해 선택할 수있게하려고합니다. 주제가있는 다중 값을 설정했습니다. 내 문제는 내가 설정 애플 리케이션에 가서 테마를 변경하고 응용 프로그램으로 돌아갈 때 "테마"가 처음에는 적용되지 않는다는 것입니다. mulitasking bar를 열거 나 닫은 후에 만 ​​적용됩니다. 여기에 내가 처리하고있는 무슨이다 :멀티 태스킹 막대를 표시하거나 닫은 후에 설정 번들에서 iPhone 로딩 설정이 업데이트됩니다.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 
    defaults = [NSUserDefaults standardUserDefaults]; 
    if (![defaults objectForKey:@"UILayout"]) { 
     [defaults setObject:@"Bar_Top" forKey:@"UILayout"]; 
    } 
    [defaults synchronize]; 
    // Override point for customization after application launch. 
    self.window.rootViewController = self.viewController; 
    [self.window makeKeyAndVisible]; 
    return YES; 
} 


- (void)applicationDidBecomeActive:(UIApplication *)application 
{ 
    layout = [defaults valueForKey:@"UILayout"]; 
    if ([layout isEqualToString:@"Bar_Top"]) { 
     NSLog(@"Bar_Top"); 
     self.viewController.menu.hidden = YES; 
     self.viewController.targetOnWebPage.hidden = NO; 
     self.viewController.timer.hidden = NO; 
     self.viewController.label.frame = CGRectMake(48, 0, 230, 15); 
     self.viewController.label.hidden = NO; 
    } else if ([layout isEqualToString:@"Bar_Bottom"]) { 
     NSLog(@"Bar_Bottom"); 
     self.viewController.menu.hidden = YES; 
     self.viewController.targetOnWebPage.hidden = NO; 
     self.viewController.timer.hidden = NO; 
     self.viewController.label.frame = CGRectMake(48, 100, 230, 15); 
     self.viewController.label.hidden = NO; 
    } else if ([layout isEqualToString:@"Menu_Button"]) { 
     NSLog(@"Menu_Button"); 
     self.viewController.menu.hidden = NO; 
     self.viewController.targetOnWebPage.hidden = YES; 
     self.viewController.timer.hidden = YES; 
     self.viewController.label.hidden = YES; 
    }  
} 

나는 또한 난 그냥 임의의 웹 페이지를로드 뷰를 가지고있는 themes..however에 대한 두 개의 NIB 파일을 가지고 있어야 내가 느슨하게하지 않으려는 것을 알고있다 그것 (비록 내가 앱이 닫히기 전에 그것을 저장할 수 있었다고해도). 두 명의 개별 인심 연구원이 아니지만, 이것이 효과가 있습니까? 아니면 내 신청서가 느려 집니까? 내가 각 테마에 대해 여러 NIB를 만들어야합니까?

모든 의견을 보내 주셔서 감사합니다.

+0

NSUserDefault 코드를 applicationDidBecomeActive : 메서드로 이동하면 응용 프로그램 : didFinishLaunching이 응용 프로그램 스위치가 아닌 응용 프로그램이 시작될 때 호출됩니다. –

답변

0

질문에 대한 답변을 찾았 으면 활성화 될 때 동기화를 강제하십시오!