2

참고 : iOS 8에서는, 상태 표시 줄은 자동으로 가로로 숨겨지고 세로로 돌아옵니다 (iPhone에만 해당).MPMoviePlayerViewController 상태 표시 줄 문제 iOS 8 관련

내 앱에 동영상을 표시하려면 MPMoviePlayerViewController의 라이트 래퍼 인 XCDYouTubeKit을 사용하고 있습니다.

일부 기능으로 인해 내 앱에서 info.plist 파일의 "View controller-based status bar appearance"를 "NO"로 설정해야했습니다. XCDYouTubeKit (MPMoviePlayerViewController)를 사용하지 않을 때까지 응용 프로그램이 잘 작동합니다. XCDYouTubeKit을 사용하면 위의 "참고"에 지정된 기능이 앱에서 사라지고 상태 표시 줄이 가로로 표시되기 시작합니다.

여기에서 데모 프로젝트를 다운로드 할 수 있습니다.

https://www.dropbox.com/s/yp5pkvf9evsl8wb/XCDYouTubeKit%20Demo.zip?dl=0

당신이 XCDYouTubeKit 데모에서 다음 단계를 수행 할 필요가이 일을 경험하려면 다음의 Info.plist 파일 에서

  1. 세트 "보기 컨트롤러 기반 상태 표시 줄 모양"을 "NO" .
  2. iOS 8에서 앱을 열고 '전체 화면 플레이어'로 이동합니다.
  3. 방향을 세로 또는 가로로 변경하십시오. 상태 막대는 가로로 숨어 있지만 세로로는 보이지 않습니다.
  4. 이제 "전체 화면 재생"버튼 (세로 모드)을 탭하고보기 컨트롤러가 표시되도록하십시오.
  5. "완료"버튼을 눌러 동영상을 닫습니다 (방향에 관계없이).
  6. 방향을 세로 또는 가로로 변경하십시오. 상태 표시 줄은 장치 방향에 관계없이 항상 유지됩니다.

도와주세요!

답변

2

참고 너무 가혹한, 당신은 (논란의 여지가 있습니다) 그냥 그쪽으로 카테고리를 사용하십시오 t!

전체 앱의 경우 한 번만 우리는 문제없이 대용량 프로덕션 애플 리케이션 (목표 - C 시대)에 매 시간마다 일을하고 있으며, 대량 클라이언트 프로젝트에서 끊임없이 보았습니다. ... 그래서 ..

1)이라는 카테고리를 만들어 정확히 의 UIViewController + HideStatusBar

@interface UIViewController (HideStatusBar) 
@end 
// the only practical approach for no-statusbar in iOS7,8+ 
@implementation UIViewController (HideStatusBar) 
#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation" 
-(BOOL)prefersStatusBarHidden {return YES;} 
-(UIViewController *)childViewControllerForStatusBarHidden {return nil;} 
#pragma clang diagnostic pop 
@end 

2) PLIST에 추가

<key>UIStatusBarHidden~ipad</key> 
<true/> 
// that is needed if you're covering iPad; do it always for consistency 

3) "하지 세트 수행 상태 표시 줄은 처음에는 "예"로 숨겨져 있습니다.

4) 이 아닌은 UIViewControllerBasedStatusBarAppearance를 변경하십시오.

확장 discussion.

2

원래 문제에 대한 해결책을 찾을 수 없습니다. 하지만 궁극적 인 목표 인 상태 표시 줄 (예 : iPhone 8 & & iPhone)의 상태 표시가 중단되었습니다.

  1. 내가 응용 프로그램 밖으로 통해 상태 스타일 을 설정했기 때문에 나는 NO에 "보기 컨트롤러 기반 상태 표시 줄 모양"을 설정했다.
  2. "컨트롤러 기반 상태 표시 줄보기"를 NO로 설정하면 주 문제가 발생 했으므로 앱을 제거한 상태 표시 줄이 검게 나타 났지만 주요 문제는 해결되었습니다.
  3. 그때 나는 모든 독립적 인 뷰 컨트롤러에서 다음 코드를 삽입했다 :

    :

UINavigationController에 포함 된 그 뷰 컨트롤러에 대해 나는 다음과 같은 질문에서 참조를했다

-(UIStatusBarStyle)preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 
preferredStatusBarStyle isn't called

+0

감사합니다. @JoeBlow 전 당신의 의견에 전적으로 동의합니다. 그 효율적인. 답변으로 게시하십시오. 나는 그것을 선택할 것이다. – harshitgupta