В моем прошивкой они строку состояния приложения скрыт в некоторых вид контроллеров. Я сделал это с помощью следующего кода.
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Он работает на iOS 5 и iOS 6 , но не в iOS 7.
Я пытался с этим, в частности, контроллер представления,
Например:
-(BOOL)prefersStatusBarHidden { return YES; }
Он хорошо работает, но я не могу снова показать строку состояния в контроллер Родительский вид.
Вы должны добавить это значение в файл plist: " поконтроллер на основе статус-бар внешний вид" и установить его, чтобы "нети".
Добавьте к вашей информации.файл plist:
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
Добавьте следующую строку в метод viewDidLoad
[[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationFade];
и добавить новый метод
- (BOOL)prefersStatusBarHidden {
return YES;
}
также меняться информация.файл plist Контроллер на основе статус-бар внешний вид на" = нет
его работы для меня
В файле plist добавить следующие свойства.
Status bar is initially hidden = YES
View controller-based status bar appearance = NO
теперь в строке состояния будет скрыта.
<Н2>попробуйте этот простой метод:</Н2>
<Н3>Objective-С:</Н3>
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated]
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated]
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}
<Н3>Свифт:</Н3>
override func viewWillAppear(animated: Bool)
{
super.viewWillAppear(animated)
UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.None)
}
override func viewWillDisappear(animated: Bool)
{
super.viewWillDisappear(animated)
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.None)
}
Я сделал следующее И это, кажется, работает (даже в iOS 8):
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
}
- (BOOL)prefersStatusBarHidden {
return YES;
}
Но это становится еще более интересным, когда там'ы участие UINavigationController:
Чтобы скрыть статус бар в iOS7 нужно 2 строки кода
[[UIApplication sharedApplication] setStatusBarHidden:да];
Представление-контроллер на основе статус-бар внешний вид = нет
Для лучшего понимания добавлю несколько фотографий с комментариями:
Приложения перед какими-либо изменениями
Найти в папке вашего проекта навигатор по имени
файлы поддержки` и нажмите на кнопку *.файл plist
После того, как вы получите различные настройки программы. Вам нужно добавить 2 клавиши UIStatusBarHidden
и UIViewControllerBasedStatusBarAppearance
. Вы можете сделать это, просто нажав на кнопку +
После нажатия + вы можете выбрать один из ключей - просто начните набирать.
Правильная версия:
И, наконец, применение после применения этого изменения:
Также, вы можете найти альтернативное решение здесь
Попробуй это;
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
Вот SWIFT-версия (до iOS 9 охота):
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
UIApplication.sharedApplication().setStatusBarHidden(true, withAnimation: UIStatusBarAnimation.None)
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.None)
}
Это также работает (с iOS7+):
override func prefersStatusBarHidden() -> Bool {
return true
}
Вам также нужно позвонить:
setNeedsStatusBarAppearanceUpdate()
в метод viewDidLoad сказать ()
.
Обратите внимание, что если вы используете SplitView контроллер, или контроллер какой другой "контейнер" вид, вы также должны вернуть свой класс, когда его отправили childViewControllerForStatusBarHidden`. Один из способов сделать это публичный слабый ВАР сказать statusController, и вернуть его в этом переопределенном методе.
Вы должны добавить это значение в файл plist: "и контроллер на основе статус-бар внешний вид" и установить его на "нет".
Шагов для скрыть строку состояния в iOS<БР>
На основе контроллера вид установить статус бар внешний вид
нет`
для iOS 9 и далее :
Как statusBarHidden` метод устаревший от iOS 9 охота вы должны добавить два значения в plist как ниже :
<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
или пользовательским интерфейсом, пожалуйста, современный рисунке ниже :
Как statusBarHidden-это устаревший от iOS 9 охота :
@имущество(ReadWrite, неатомической,добытчик=isStatusBarHidden) БООЛ statusBarHidden NS_устаревший_IOS(2_0, 9_0, &и"использовать -[для UIViewController prefersStatusBarHidden] и") __TVOS_запрещено;
Исправлена решение для Swift 3+ (иос 9, 10)
1 - в инфо.plist в установить ниже собственность
2 - вставьте ниже код в корневой контроллер , чтобы
private var isStatusBarHidden = true {
didSet {
setNeedsStatusBarAppearanceUpdate()
}
}
override var prefersStatusBarHidden: Bool {
return isStatusBarHidden
}
Вы можете позвонить isStatusBarHidden = trueи
isStatusBarHidden = ложь`, где вы хотите, чтобы скрыть/показать статус бар
Свифт 5
Используйте следующие шаги, чтобы скрыть строку состояния в iOS:
Заключительный Скриншот Настроек:
Это работает на Xcode версии 10.2
Из программирования с использованием UIKit в>
UIApplication.ч`:
// Setting statusBarHidden does nothing if your application is using the default UIViewController-based status bar system.
@property(nonatomic,getter=isStatusBarHidden) BOOL statusBarHidden;
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_AVAILABLE_IOS(3_2);
Так стоит сеть на основе контроллера вид состояние внешний вид бар нет
Для ответа на Susitha'ы вопрос: использовать setNeedsStatusBarAppearanceUpdate. Это позволит сделать звонок prefersStatusBarHidden для обновления с желаемым состояния государства. Попробуйте это:
@property (nonatomic, getter=isHideStatusBar) BOOL hideStatusBar; // Give this a default value early
- (BOOL)prefersStatusBarHidden {
return self.isHideStatusBar;
}
- (void)someMethod {
// triggered by an event or user action
[self setHideStatusBar:YES];
[self setNeedsStatusBarAppearanceUpdate];
}
Если вы хотите снова увидеть в строке состояния, установить hideStatusBar собственность (или как вы это называете) нет. Звоните косвенно preferStatusBarHidden, сделав еще один звонок
[self setNeedsStatusBarAppearanceUpdate]