[hidden] 상태 표시 줄이 사라지지 않습니다

응용 프로그램을 만들고 있는데 상태 표시 줄을 숨기고 싶습니다. 앱을 테스트 할 때 스플래시 화면이 표시되는 동안 상태 표시 줄이 숨겨 지지만 앱이 완전히로드되면 상태 표시 줄이 다시 나타납니다.

Xcode 5 및 iOS 7을 사용하고 있으며 프로그래밍 방식으로 상태 표시 줄을 비활성화하려고했습니다.

  ([[UIApplication sharedApplication] setStatusBarHidden:YES
      withAnimation:UIStatusBarAnimationFade];),

info.plist 파일에서 .xib 파일의 속성 검사기를 사용합니다. 작동하지 않는 것 같습니다.

어떤 아이디어?



답변

앱의 루트 뷰 컨트롤러에 다음 메서드를 추가해보세요.

- (BOOL)prefersStatusBarHidden
{
    return YES;
}


답변

이 값을 plist에 추가해야합니다. ” View controller-based status bar appearance “및 ” NO “로 설정하십시오 .

이렇게하면 상태 표시 줄을 숨김 모드 로 설정할 수 있습니다. . 이것은 다른 제공된 답변과 달리 글로벌로 설정합니다.

업데이트 : 스플래시 화면에서 상태 표시 줄을 숨기려면 대상 상태 표시 줄 옵션에서 ” 응용 프로그램 실행 중 숨기기 “를 표시하는 것을 잊지 마십시오 . 또한 앱 내부의 코드로 수행하지 않으려면 plist의 ” YES “에 ” 상태 표시 줄이 처음에 숨겨져 있습니다 “를 추가 할 수 있습니다 .


답변

게시 한 코드는 iOS 6.1 이하에서 작동합니다. iOS 7의 경우 Apple은 각보기의 상태 표시 줄을 직접 제어 할 수있는 새로운 방법을 만들었습니다. Info.plist 에서이 옵션을 끄면 최소한 현재 개발자 미리보기 (4)에 대해 상태 표시 줄을 숨길 수 있습니다.

이것을 추가하고 NO로 설정하십시오.

참고로 Apple의 개발자 포털에서 제공되는 iOS 7 전환 가이드를 참조하세요.


답변

내 모든 앱과 “app”-info.plist에서 상태 표시 줄을 숨기려고 시도하고 “정보 속성 목록”사전에 두 행을 추가합니다. “컨트롤러 기반 상태 표시 줄 모양보기”를 추가하고 ” 상태 표시 줄은 처음에 숨겨져 있습니다. “YES를 설정하고 n_n을 작동합니다.

plist 정보


답변

그러나 UIImagePicker를 사용하면 상태 표시 줄이 다시 나타납니다.

이 경우 아래와 같이 상태 표시 줄을 숨겨야합니다.

- (void)imagePickerController:(UIImagePickerController *)aPicker didFinishPickingMediaWithInfo:(NSDictionary *)info {

// for iOS7
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {

        [[UIApplication sharedApplication] setStatusBarHidden:YES];
    }


답변

오랜 검색 끝에 마침내 매우 간단한 해결책을 찾았습니다. UIImagePickerController 문제를 해결 .

다른 답변에서 언급했듯이 AppDelegate didFinishLaunching에 숨겨진 상태 표시 줄을 설정하고 “View controller-based status bar appearance”를 NO로 설정합니다.

그런 다음 AppDelegate에서 :

- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
      [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}

et voila-UIImagePickerController가 맨 위에있는 경우에도 상태 표시 줄이 숨겨진 상태로 유지됩니다.

UIImagePickerController를 표시 할 때마다 앱 전체에 숨겨져 있으므로 ‘다시 숨기는’것보다 낫습니다.


답변

특정 UIViewController에서 상태 표시 줄을 숨기려면 다음을 추가하면됩니다.

-(BOOL)prefersStatusBarHidden
{
    return YES;
}

도움이 되었기를 바랍니다 !