development

iOS 8 앱에서 상태 표시 줄 숨기기

big-blog 2020. 10. 22. 08:21
반응형

iOS 8 앱에서 상태 표시 줄 숨기기


나는 시도했다

[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

이것은 아무것도하지 않습니다.

그리고 내 Info.plist파일에서 "컨트롤러 기반 상태 표시 줄 모양보기"를 찾았 지만 거기에 없습니다.

Xcode 6 용 앱에서 화면 상단의 흰색 상태 표시 줄 (시계 및 배터리 충전 포함)을 숨기려면 어떻게해야합니까? 감사합니다!


해당 plist 항목이없는 경우 각 뷰 컨트롤러에서이 메서드를 재정의해야합니다.

목표 -C

-(BOOL)prefersStatusBarHidden{
    return YES;
}

스위프트 2

override func prefersStatusBarHidden() -> Bool {
    return true
}

Swift 3+

override var prefersStatusBarHidden: Bool {
    return true
}

그리고 설정하는 것을 잊지 마십시오 ( presentViewController : animated : completion : 메소드 를 호출하여 뷰 컨트롤러를 제공하는 경우 ) :

목표 -C

vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = YES;

빠른

vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = true

문서 : https://developer.apple.com/reference/uikit/uiviewcontroller/1621453-modalpresentationcapturesstatusb

일부 컨테이너 뷰 컨트롤러 (예 : UINavigationController또는 UIViewController자식 뷰 컨트롤러)에서 상태 표시 줄을 변경하고 상태 표시 줄을 담당하는 뷰 컨트롤러를 변경하려면 childViewControllerForStatusBarHidden:속성 을 사용해야 합니다. 예 :

항상 상태 표시 줄 관리를 담당하는 첫 번째보기 컨트롤러 인스턴스 설정

목표 -C

- (UIViewController *)childViewControllerForStatusBarHidden {
    return childViewControllers.first; // or viewControllers.first
}

스위프트 2

override var childViewControllerForStatusBarHidden() -> UIViewController? {
    return childViewControllers.first // or viewControllers.first
}

Swift 3+

override var childViewControllerForStatusBarHidden: UIViewController? {
    return childViewControllers.first // or viewControllers.first
}

상태 표시 줄 관리를 담당하는 컨테이너보기 컨트롤러 설정

목표 -C

- (UIViewController *)childViewControllerForStatusBarHidden {
    return nil;
}

스위프트 2

override func childViewControllerForStatusBarHidden() -> UIViewController? {
    return nil
}

Swift 3+

override var childViewControllerForStatusBarHidden: UIViewController? {
    return nil
}

문서 : https://developer.apple.com/documentation/uikit/uiviewcontroller/1621451-childviewcontrollerforstatusbarh


  1. Info.plist 파일로 이동
  2. 해당 줄 중 하나를 가리키면 [+) 및 (-) 버튼이 표시됩니다.
  3. 더하기 버튼을 클릭하여 새 키를 추가하세요.
  4. Type in start with capital V and automatically the first choice will be View controller-based status bar appearance. Add that as the KEY.
  5. Set the VALUE to "NO"
  6. Go to you AppDelegate.m for Objective-C (for swift language: AppDelegate.swift)
  7. Add the code, inside the method

For Objective-C:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    [application setStatusBarHidden:YES];

    return YES;
}

For Swift:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey:Any]?) -> Bool {
    application.statusBarHidden = true

    return true
}

Done! Run your app and no more status bar!


You can hide the status bar without writing a single line of code, it just requires two entries into the info.plist the first is

"View controller-based status bar appearance" set to NO

the second is

"Status bar is initially hidden" set to YES


You can add that row to your Info.plist file if it isn't there. Just go to the project in Xcode, go to the "Info" section, and hover over one of the existing rows. A "+" button should appear, allowing you to add a line and input "View controller-based status bar appearance".


For iOS 10 with Swift 3 you should use:

override var prefersStatusBarHidden: Bool {
    get {
        return true
    }
}

  1. Open info.plist
  2. "View controller-based status bar appearance" set to NO
  3. "Status bar is initially hidden" set to YES
  4. Done

No need to write a line of code...Cheers


If you use UIDocumentInteractionController to show data then you never hide status bar so i have alternate of this

 [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];

this line change the color of status bar content into white

참고URL : https://stackoverflow.com/questions/26146012/hide-status-bar-in-ios-8-app

반응형