В ios7, как я могу скрыть statusbar. Я использую XCode 4.6.1
(ios6.1) и я хочу реализовать это в самом XCode.
Как скрыть строку состояния программно в iOS 7?
Ответ 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