Dans ios7 , comment puis-je masquer la statusbar par programmation? J'utilise XCode 4.6.1
( ios6.1 ) et je souhaite l'implémenter dans XCode lui-même.
dans iOS7, vous devez implémenter dans votre viewController
- (BOOL)prefersStatusBarHidden {
return YES;
}
vous pouvez masquer la barre d'état pour définir la valeur de clé "Afficher la vue de l'apparence de la barre d'état basée sur le contrôleur" NON dans. C'est le moyen le plus simple.
ou Vous pouvez masquer dans le code en utilisant la propriété statusBarHidden de la classe UIApplication.
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Swift 3.0
Masquer la barre d'état d'un contrôleur de vue particulier
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
Masquer le statut dans l'application
UIApplication.shared.isStatusBarHidden = true
et définissez la valeur de clé «Afficher l’apparence de la barre d’état basée sur le contrôleur», cliquez sur NO dans la pliste info du projet.
- (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;
}
Pour masquer un ViewController spécifique (puis le réactiver) lorsque View controller-based status bar appearance
est défini sur 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];
}
Si vous avez besoin de le masquer/l'afficher dynamiquement sur un contrôleur de vue donné, vous pouvez faire quelque chose comme ceci.
(Bien que je recommande simplement d'utiliser - (BOOL)prefersStatusBarHidden
pour renvoyer votre préférence si vous n'avez pas besoin de la changer.)
// 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
Si iOS> = 7.0, utilisez le code suivant:
Syntaxe:
// Present in UIViewController of UIKit Frameworks
- (BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0); // Defaults to NO
Usage:
- (BOOL)prefersStatusBarHidden {
return YES;
}
Dans iOS <7.0, utilisez le code suivant:
Syntaxe:
// Present in UIApplication of UIKit Frameworks
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_AVAILABLE_IOS(3_2);
Usage:
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
sur Swift 4:
UIApplication.shared.isStatusBarHidden = ..true/false
D'après mon expérience, vous avez besoin du code et de la valeur du fichier info.plist dans iOS 9/Xcode 7.3.
Ajoutez ceci à votre méthode viewDidLoad .
[[UIApplication sharedApplication] setStatusBarHidden:YES];
Ajoutez ceci à votre fichier info.plist en tant que valeur booléenne et réglez-le sur NO:
View controller-based status bar appearance
Si vous utilisez iOS 9.0+ et Swift. Si vous souhaitez que la barre d'état soit masquée dans certains contrôleurs de vue mais pas dans tous, assurez-vous que la valeur View controller-based status bar appearance
dans Info.plist
est définie sur YES
sinon les mêmes paramètres seront utilisés dans tous les contrôleurs de vue.
Et remplacez prefersStatusBarHidden
dans la sous-classe de UIViewController
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
De même peut être fait pour changer preferredStatusBarStyle
override var preferredStatusBarStyle: UIStatusBarStyle {
get {
return .lightContent
}
}
étape 1. Définissez View controller-based status bar appearance
dans votre info.plist
surOUI
étape 2. Tapez du code dans votre UIViewController
, la barre d'état se cachera lorsque vous présenterez la UIViewController
.
private var statusBarIsHidden = false
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
statusBarIsHidden = true
setNeedsStatusBarAppearanceUpdate()
}
override var prefersStatusBarHidden: Bool {
return statusBarStatus
}
Si quelqu'un voulait la méthode la plus récente pour le faire (Swift 2.1 et le dernier Xcode 7.2)
Définissez "Afficher l'apparence de la barre d'état basée sur le contrôleur sur NO dans votre info.plist"
UIApplication.sharedApplication (). StatusBarHidden = true // place le délégué de l'application quelque part (applicationWill ou DidFinishLaunchingWithOptions:
Essaye ça
[[UIApplication sharedApplication] setStatusBarHidden:YES];