2014-10-21 2 views
12

Xcode 6.x로 응용 프로그램을 빌드하면 가로 방향 (iPhone)의 상태 표시 줄이 자동으로 숨겨집니다. Xcode 5.x로 컴파일 할 때 동일한 어플리케이션이 그렇게하지 않습니다.Xcode 6.x/iOS 8 가로 방향의 상태 표시 줄 숨기기

응용 프로그램이 가로 방향으로 상태 표시 줄을 숨기지 않게하려면 어떻게합니까? 기본적으로, Apple/Xcode가 내 목구멍을 뚫었 던이 "최고 멋진"기능을 어떻게 비활성화 할 수 있습니까?

p.s. 다음 코드로 뷰 컨트롤러를 업데이트하려고 시도했지만 도움이되지 않습니다.

- (BOOL)prefersStatusBarHidden { 
    return NO; 
} 

답변

17

최상의 솔루션

을 사용하고 있습니다 :

1). 프로젝트의 Info.plist 파일에서 "컨트롤러 기반 상태 표시 줄보기"를 NO으로 설정하십시오.

2). 짜잔,

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone]; 
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone]; 

을 그리고 다음 코드를 사용하여, application:didFinishLaunchingWithOptions:에, NO에 상태 표시 줄 숨김 상태를 강제로!

참고 : 위의 setStatusBarHidden:withAnimation: 문을 모두 사용하여 상태 표시 줄을 숨김 상태로 만드는 것이 중요합니다.


참조 : On iOS8, displaying my app in landscape mode will hide the status bar but on iOS 7 the status bar is displayed on both orientations

1

나는 그것은 기본적으로 두 단계의 과정이다

#define IS_IOS8 SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"8.0") 

-(void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration{ 
    [super willAnimateRotationToInterfaceOrientation:toInterfaceOrientation duration:duration]; 

    if (IS_IOS8){ 
      [[UIApplication sharedApplication] setStatusBarHidden:NO]; 
    } 
} 
+3

'-willAnimateRotationToInterfaceOrientation'은 더 이상 사용되지 않습니다. – orkenstein

0

설정 "보기 컨트롤러 기반 상태 표시 줄 모양"에 YES에서의 Info.plist

그런 다음 원하는 뷰 컨트롤러에 다음 코드를 넣습니다

- (BOOL)prefersStatusBarHidden { 
    return NO; 
} 
관련 문제