수색…


비 UINavigationBar 상태 표시 줄

  1. info.plist에서 View controller-based status bar appearanceYES
  2. UINavigationController 포함되지 않은 뷰 컨트롤러에서는이 메서드를 구현합니다.

목표 -C에서 :

- (UIStatusBarStyle)preferredStatusBarStyle
{ 
    return UIStatusBarStyleLightContent; 
}

스위프트 :

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.LightContent
}

UINavigationBar 상태 표시 줄의 경우

UINavigationController를 서브 클래스 화해, 다음의 메서드를 오버라이드 (override)합니다.

목표 -C에서 :

- (UIStatusBarStyle)preferredStatusBarStyle
{ 
    return UIStatusBarStyleLightContent; 
}

스위프트 :

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return .lightContent
}

또는 UINavigationBar 인스턴스에 barStyle 을 설정할 수 있습니다.

목표 C :

// e.g. in your view controller's viewDidLoad method:
self.navigationController.navigationBar.barStyle = UIBarStyleBlack;  // this will give you a white status bar

빠른

// e.g. in your view controller's viewDidLoad method:
navigationController?.navigationBar.barStyle = .black // this will give you a white status bar

UIBarStyle 옵션은 default , black , blackOpaque , blackTranslucent 입니다. 후자 3은 모두 흰색 텍스트가있는 상태 표시 줄을 제공해야하며 마지막 두 개는 막대의 불투명도를 지정합니다.

참고 : 원하는대로 탐색 모음의 모양을 변경할 수 있습니다.

ViewController의 코드를 변경할 수 없다면

잘못된 상태 표시 줄 색이있는 (예를 들어) AwesomeViewController가 포함 된 라이브러리를 사용하는 경우 다음을 시도 할 수 있습니다.

  let awesomeViewController = AwesomeViewController()
  awesomeViewController.navigationBar.barStyle = .blackTranslucent // or other style

ViewController 포함

UIViewControllerContainment 를 사용하는 경우 살펴볼 가치가있는 몇 가지 다른 메소드가 있습니다.

자식 viewController가 상태 표시 줄의 표시를 제어하기를 원할 때 (즉, 자식이 화면 상단에 위치하면

스위프트에서

class RootViewController: UIViewController {

    private let messageBarViewController = MessageBarViewController()        

    override func childViewControllerForStatusBarStyle() -> UIViewController? {
        return messageBarViewController
    }

    override func viewDidLoad() {
        super.viewDidLoad()
        
        //add child vc code here...

        setNeedsStatusBarAppearanceUpdate()
    }
}

class MessageBarViewController: UIViewController {
    
    override func preferredStatusBarStyle() -> UIStatusBarStyle {
        return .Default 
    }
}

전체 응용 프로그램의 상태 표시 줄 스타일 변경


빠른:


1 단계:

Info.plist 에서 다음 속성을 추가하십시오 :

View controller-based status bar appearance

그 값을

NO

아래 이미지에 설명 된대로 :

여기에 이미지 설명을 입력하십시오.

2 단계:

AppDelegate.swift 파일의 didFinishLaunchingWithOptions 메소드에 다음 코드를 추가하십시오.

UIApplication.shared.statusBarStyle = .lightContent

또는

UIApplication.shared.statusBarStyle = .default
  • .lightContent 옵션은 앱 전체에 대해 statusBar 의 색상을 흰색으로 설정합니다.

  • .default 옵션은 앱 전체에 대해 statusBar 의 색상을 원래 검은 색으로 설정합니다.


목표 -C :


SWIFT 섹션의 첫 번째 단계를 따르십시오. 그런 다음이 코드를 AppDelegate.m 파일에 추가하십시오.

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

또는

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleDefault];


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow