Подтвердить что ты не робот

Как скрыть строку состояния программно в iOS 7?

В , как я могу скрыть statusbar. Я использую XCode 4.6.1 (ios6.1) и я хочу реализовать это в самом XCode.

4b9b3361

Ответ 1

в iOS7 вы должны реализовать в своем viewController

- (BOOL)prefersStatusBarHidden {
    return YES;
}

Ответ 2

вы можете скрыть строку состояния, чтобы установить значение ключа "Просмотр состояния панели состояния на основе контроллера" НЕТ в plist. Это самый простой способ.

или вы можете скрыть код, используя свойство statusBarHidden класса UIApplication.

[[UIApplication sharedApplication] setStatusBarHidden:YES];

Swift 3.0

Скрыть строку состояния для любого конкретного контроллера вида

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

Скрыть состояние bas в приложении

UIApplication.shared.isStatusBarHidden = true

и установите значение ключа "Просмотр состояния панели управления на основе контроллера" НЕТ в информационной структуре проекта.

Ответ 3

- (void)viewDidLoad
{
    [super viewDidLoad];
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)])
    {
        [self prefersStatusBarHidden];
        [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
    }
    else
    {
        // iOS 6
        [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
    }
}

// Add this method
- (BOOL)prefersStatusBarHidden {
    return YES;
}

Ответ 4

Чтобы скрыть конкретный ViewController (а затем снова включиться), когда View controller-based status bar appearance установлен на NO:

-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
}

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
}

Ответ 5

Если вам нужно скрыть/показать его на данном контроллере представления динамически, вы можете сделать что-то вроде этого.

(Хотя я рекомендую просто использовать - (BOOL)prefersStatusBarHidden, чтобы вернуть ваши предпочтения, если вам не нужно его изменять.)

// view controller header 
@interface MyViewController : UIViewController  {
    BOOL shouldHideStatusBar;
}
@end


@implementation

- (BOOL)prefersStatusBarHidden {
    return shouldHideStatusBar; // backed by your instance variable
}

- (void)setPrefersStatusBarHidden:(BOOL)hidden {
    shouldHideStatusBar = hidden;

    // Don't call this on iOS 6 or it will crash since the 
    // `setNeedsStatusBarAppearanceUpdate` method doesn't exist
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];

    // [self setNeedsStatusBarAppearanceUpdate]; // (if Xcode 5, use this)
}

@end

Ответ 6

В случае iOS >= 7.0 используйте следующий код:

Синтаксис:

// Present in UIViewController of UIKit Frameworks
- (BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0); // Defaults to NO

Использование:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

В iOS < 7.0 используйте следующий код:

Синтаксис:

// Present in UIApplication of UIKit Frameworks
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_AVAILABLE_IOS(3_2);

Использование:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];

Ответ 7

Попробуйте это

[[UIApplication sharedApplication] setStatusBarHidden:YES];

Ответ 8

Если кому-то нужен самый последний способ сделать это (Swift 2.1 и последний Xcode 7.2)

  • Установите "Просмотреть статусную строку статуса контроллера на NO в вашем файле info.plist"

  • UIApplication.sharedApplication(). statusBarHidden = true//помещать внутри делегата приложения где-нибудь (applicationWill или DidFinishLaunchingWithOptions:

Ответ 9

Мой опыт в том, что вам нужен код и значение в файле info.plist в iOS 9/Xcode 7.3.

Добавьте это в свой метод viewDidLoad.

[[UIApplication sharedApplication] setStatusBarHidden:YES];

Добавьте это в свой файл info.plist как логическое значение и установите для него значение НЕТ:

View controller-based status bar appearance