2013-09-25 2 views
5

ios7/objective-c 문제로 어려움을 겪고 있습니다. 누군가가 도와 줄 수 있기를 바랍니다.iPad에서 상태 표시 줄이 예상대로 렌더링되지 않습니다.

일부 배경으로 io6 기기에서 예상대로 렌더링되는 앱이 있지만 iOS7과 호환되도록 앱을 준비하고 있습니다.

혼란스러워하는 부분은 내 코드가 iPhone에서 예상대로 작동하지만 iPad에 없다는 것입니다.

First the iPhone

Now the iPad:

(참고 : 아래의 이미지에서

는 아이 패드 아이폰에 있지만 예상대로 상태 표시 줄 (캐리어, 시간, 배터리) 렌더링하는 것을 볼 수 있습니다 : 이것이 내 첫 번째 게시이기 때문에 이미지를 직접 포함 할 수는 없습니다. 죄송합니다.)

보기의 코딩 관점에서, 나는 모든 제안을 시도했다 : 행운없이 How to change Status Bar text color in iOS 7.

내 AppDeligate에서 예상대로 App 렌더링을하는 것은 다음과 같은 정의입니다.

// News page 
newsViewController = [[NewsViewController alloc] init]; 
newsNavigationController = [[UINavigationController alloc] initWithRootViewController:newsViewController]; 
newsNavigationController.navigationBar.translucent = NO; 
newsNavigationController.navigationBar.barStyle = UIStatusBarStyleLightContent; 
newsNavigationController.navigationBar.tag = 4013; 

이제 그 문제는 내가 흰색의 텍스트를 넣어해야 UIStatusBarStyleLightContent에 바 스타일을로 설정 한 경우에도, 그것은 아이 패드에이 일을하지 않는 것으로 생각합니다. 대신 검정색으로 검정색으로 렌더링됩니다.

이것은 내가 줄 제거하는 경우 때문에, 경우 것 같다 : 어두운 회색에

newsNavigationController.navigationBar.translucent = NO; 

검은 색의 변화를, 캐리어, 날짜, 배터리는 볼 수 있지만, 검은 색이다. 어두운 회색 대 검정색 배경으로 살기를 원하지만 상태 표시 줄 항목은 아이폰처럼 흰색으로 렌더링해야합니다.

제안 사항?

P. 나는 이것이 올바른 방향으로 물건을 가리키는 데 도움이 될지 모르겠지만 iPad는 splitview 컨트롤러를 사용하고 있습니다.

감사

+0

나를 위해 일한 추가 문제가 UISplitViewController와 관련이있는 것처럼 보입니다. 제거하면 상태 텍스트가 예상대로 흰색으로 렌더링됩니다. – user2816721

답변

0

시도 Status bar style~ipad 퍼팅 : UIStatusBarStyleLightContent 당신의 Info.plist에.

+0

제안에 감사하지만 불행히도 사랑이 없습니다. 또한 UIStatusBarStyleLightContent로 설정된 "상태 표시 줄 스타일"의 일반 항목을 시도했지만 그 중 하나도 도움이되지 않았습니다. – user2816721

8

상태 표시 줄이 루트보기 컨트롤러의 환경 설정을 사용하기 때문에 내비게이션 컨트롤러의 기본 설정 상태 막대 스타일을 조정하는 것은 iPad에서 작동하지 않습니다. 루트보기 컨트롤러가 아니기 때문입니다. 따라서 UISplitViewController의 서브 클래스에서 preferredStatusBarStyle을 대체해야합니다.

@implementation DGBaseSplitViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 
} 

- (UIStatusBarStyle)preferredStatusBarStyle { 
    return UIStatusBarStyleLightContent; 
} 

@end 
+0

이것은 i.m.o 최고의 솔루션입니다 – ullstrm

+0

이것은 나를 위해 일한 유일한 방법입니다. 작동하기 전에 앱 스토리에있는 클래스를 재 할당하는 것 외에도 iPad 스토리 보드의 분할보기 컨트롤러를 새 하위 클래스로 설정해야했습니다. –

5

하위 클래스라는 웨인에 의해 권장하는대로 SplitViewController은 아주 잘 유효한 해결책이 될 수도 있지만, 이것은 내가 내 목적을 위해 문제를 해결하는 일을 결국 것입니다.

  1. 설정에 저장됩니다 = TRUE 숨겨진 UI 상태 표시 줄 (내가 에 시작 화면을 상태 표시 줄을 원하지 않는다)..plist에서 UIStatusBarStyle = UIStatusBarStyleLightContent

  2. 세트 - - PLIST .plist에서 = 사실 & UIStatusBarHidden ~ 아이 패드 = TRUE]

  3. 설정 UIStatusBarHidden로 UIViewControllerBasedStatusBarAppearance = 내 AppDeligate에서

  4. 거짓, 상단 부근에 다음 줄을 추가했습니다.

    [UIApplication sharedApplication] setStatusBarHidden : NO];

    스플래시 화면이 표시된 후 상태 표시 줄을 다시 표시합니다.

0

조합의 :

  1. 보기 컨트롤러 기반 상태 표시 줄 모양 = NO

  2. 상태 표시 줄 스타일 = UIStatusBarStyleLightContent

그냥

관련 문제