현재 상태 표시 줄이 표시된 UIViewController
하위 클래스가 있습니다.상태 표시 줄을 표시 한 다음 버튼 누름으로 숨기기
[self setNeedsStatusBarAppearanceUpdate];
을 그리고 내가이 문 구현 : 사용자가 버튼을 탭, 내가 작성한 UIView
서브 클래스를 표시하는 메소드를 호출
- (UIStatusBarStyle)preferredStatusBarStyle
{
return UIStatusBarStyleLightContent;
}
을 viewDidLoad
에서 나는 다음과 같은 전화 . 모든 메서드는 하위 클래스에 alpha
속성을 1로 설정하여 화면에 표시되도록합니다.
내 문제는 내가이 UIView
하위 클래스를 표시 할 때마다 상태 표시 줄을 숨기고 싶습니다.
나는 컨트롤러와 뷰 서브 클래스 모두에서 다음 호출 시도 :
는[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
상태 표시 줄을 숨 깁니다하지 않습니다. 다음은 모두 컨트롤러의 상태 표시 줄을 숨기 때문에 분명히 나는 다음과 같은 일반 메서드를 사용할 수 없습니다, 나는 단지 내가보기 서브 클래스 표시 할 때 그것을 숨기려 : 방법에
- (BOOL)prefersStatusBarHidden {
return YES;
}
어떤 아이디어 나는 이것을 할 수 있니? 나는 UIViewController
과 UIView
을 나타내는 nib 파일을 사용하고 있습니다.
, 나는 이미 아무것도가 게시되지 않은 경우 실행 계획 한 일. 나는 내가 그런 방식으로 접근하여 뭔가 잘못하고 있다고 가정하고 그것이 완벽하게 작동하도록하기 위해 호출 할 수있는 방법이있을 것이라고 생각한다. – user3344977
글쎄, 당신은 UIViewController의 사용자 정의 서브 클래스를 만들고 그것을 상속 한 모든 뷰 컨트롤러에 대해이 기능을 구현할 수 있습니다. 또는 심지어 objc 런타임을 사용하여 속성을 추가 한 다음 세터와 getter를 재정의 할 수있는 카테고리를 만들 수도 있습니다. 여전히 UIViewController에서 클래스를 상속받습니다.) 그러나 나는 그들 모두가 다소 해킹 된 것처럼 보이고 실제로 "하나의 라이너"/ 간단한 해결책이 없다는 것에 동의한다. –
당신의 솔루션은 가장 구현하기 쉽고 가장 합리적인 솔루션이다. 건배! – user3344977