2012-06-02 2 views
1

프레임을 변경하여 UINavigationBar의 높이를 변경했습니다. 그러나 응용 프로그램을 백그라운드로 보내고 다시 열면 높이가 원래 크기로 복원됩니다. 어떻게 해결할 수 있습니까?iPhone - 전경을 입력 한 후 프레임 크기를 복원하는 방법은 무엇입니까?

+0

높이를 변경하는 위치는 어디입니까? ViewController의 viewDidLoad에서이 작업을 수행하고 있습니까? – self

+0

예, ViewdidLoad 및 ViewDidAppear에서도 – Oleg

+0

이 한 번만 수행되어야합니다. viewDidAppear – self

답변

0

프레임을 plist 또는 XML 파일과 같은 리소스 파일에 쓸 수 있습니다. 그런 다음 plist를 -(void)applicationWillEnterForeground:(UIApplication *)application' or - (void) applicationDidBecomeActive : (UIApplication *) application` 응용 프로그램 대리인 파일에로드하십시오.

NSUserDefaults *frameSize = [NSUserDefaults standardUserDefaults]; 

//Put frame size into defaults 
[sharedDefaults setObject:navigationBar.frame forKey:@"frame"]; 
[sharedDefaults synchronize]; 

그런 다음 상기 앱 위임 방법, 당신은 같은 것을 할 수 있습니다 : 당신이 또한 NSUserDefaults를 사용할 수 있습니다 생각이 도움이

self.viewController.navigationController.frame = [sharedDefaults objectForKey:@"frame"]; 

희망하고 그랬다면, 투표까지해야합니다.

-----------이 질문 iOS selected tab 보면, 당신이 방법을 선택하는 탭 결정 말한다 ------------

편집 . 그들이 기본적으로 말하는 것은 먼저 앱 위임에 self.tabController.delegate = self을 추가하고 앱 위임자와 탭 막대가있는보기 컨트롤러가 UITabBarControllerDelegate 프로토콜을 준수하는지 확인하는 것입니다. 그런 다음 탭 막대가있는 View Controller 파일에서 프로토콜에 정의 된이 메서드를 사용할 수 있습니다.

- (void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:(UIViewController *)viewController { 
    if (tabBarController.selectedIndex == 0) { 
    //The 0 is the first tab, but you can replace that with any other tab's index 

     //Here you say that when said tab is selected, the navigation controller's frame is the stored length. 
     self.navigationController.frame = [sharedDefaults objectForKey:@"frame"]; 
    } 
    else{ 
     self.navigationController.frame = CGRectMake(frame, for, other, tabs); 
    } 
} 
+0

내 앱에는 4 개의 탭이 있으며, UINavigationBar 높이는이 탭 중 하나에서만 변경해야합니다. 어떻게해야합니까? – Oleg

+0

저는 탭바드에 익숙하지 않아서 지금 당장 당신을 도울 수는 없지만 그걸 살펴볼 것입니다. 죄송합니다 – pasawaya

+0

NSUserDefaults의 탭 인덱스를 NSNumber로 유지할 수도 있습니다. 모든 탭 프레임을 유지하려면 NSNumber 객체를 포함하는 NSMutableArray 객체로 NSUserDefaults 객체를 유지하거나 사용할 수 있습니다. 'NSMutableDictionary' 등. 희망은 당신에게 영감을 줄 것입니다. – relower

관련 문제