2013-08-05 4 views
0

정규식으로 상태 표시 줄 및 탐색 기능을 조작하는 방법은 무엇입니까?iOS : 상태 표시 줄 및 탐색 모음 : 공백 또는 밑받침

내 목표는 상태 표시 줄과 탐색 모음을 동시에 숨기고 표시하는 것입니다.

정상적인 방법으로해야 할 일 (공백 상태 표시 줄을 탐색 모음에 놓음)과 정상 회전을 지원합니까?

나는 그것을 연주했고 지금은 코드가 없습니다 :

-(void)tryToManipulateWithTopBarsIsHidden:(BOOL)hidden{ 
    if (self.wantsFullScreenLayout) { 

     // Get status bar height if visible 

     CGFloat statusBarHeight = 0; 
     [self topBarsHiddenStateAppearingOrDisappearingStatusBarHidden:hidden 
                navigationBarHidden:hidden]; 
     // Get status bar height if visible 
     if (![UIApplication sharedApplication].statusBarHidden) { 
      CGRect statusBarFrame = [[UIApplication sharedApplication] statusBarFrame]; 
      statusBarHeight = MIN(statusBarFrame.size.height, statusBarFrame.size.width); 
//   statusBarOrigin = MIN(statusBarFrame.origin.x,statusBarFrame.origin.y); 
     } 

     // Set navigation bar frame 
     // if status bar is visible and 
     // nav bar origin in y is not the same as status bar (magic, really) 
     // we need to set nav bar origin y to status bar origin y (auto shifting to bottom) 
     CGRect navBarFrame = self.navigationController.navigationBar.frame; 
     // if status bar is visible 
     if (![UIApplication sharedApplication].statusBarHidden){ 
      navBarFrame.origin.y = statusBarHeight; 
      navBarFrame = CGRectOffset(navBarFrame, 0.0, -20.0); 
      self.navigationController.navigationBar.frame = navBarFrame; 
     } 
     self.navigationController.navigationBar.hidden =[UIApplication sharedApplication].statusBarHidden ; 
     LogRect(@"this is statusBar ", [UIApplication sharedApplication].statusBarFrame); 
     LogRect(@"this is navigationBar ", navBarFrame); 
    } 
} 

- (void)setTopBarStatusBarHidden:(BOOL)hidden onCompletion:(void(^)(UINavigationBar*))completion andNavigationBar:(UINavigationBar*)bar{ 
    [[UIApplication sharedApplication] setStatusBarHidden:hidden]; 
    completion(bar); 
} 

- (void)setTopBarNavBarHidden:(BOOL)hidden{ 
    [self.navigationController setNavigationBarHidden:hidden animated:NO]; 
} 

- (void)topBarsHiddenStateAppearingOrDisappearingStatusBarHidden:(BOOL)statusBarHidden 
              navigationBarHidden:(BOOL)navigationBarHidden{ 

    UINavigationBar* bar = self.navigationController.navigationBar; 
    id fles = self; 
    [self setTopBarStatusBarHidden:statusBarHidden 
         onCompletion:^(UINavigationBar *bar) { 
          if (statusBarHidden){ 
           [fles setTopBarNavBarHidden:navigationBarHidden]; 
          } 
          else 
           [fles setTopBarNavBarHidden:navigationBarHidden]; 

         } 
        andNavigationBar:bar]; 
} 

하지만 아무것도!

아무도이 지저분한 (실제로 작동하지 않는 코드)없이이 작업을 해결하는 방법을 설명 할 수 있습니까?

답변

0

당신은 방법에 쓰기 :

self.navigationController.navigationBar.hidden = YES; 
[UIApplication sharedApplication].statusBarHidden = YES; 

이 동시에 탐색 표시 줄과 상태 표시 줄을 숨 깁니다.

+0

제발, 제 질문을 읽으십시오 : 나는 숨기거나 공간과 밑받침없이 함께 보여주고 싶습니다. – gaussblurinc