Je crée une application et je veux que la barre d'état soit masquée. Lorsque je teste l'application, la barre d'état est masquée lorsque l'écran de démarrage est affiché, mais une fois l'application complètement chargée, la barre d'état réapparaît.
J'utilise Xcode 5 et iOS 7 et j'ai essayé de désactiver la barre d'état par programme
([[UIApplication sharedApplication] setStatusBarHidden:YES
withAnimation:UIStatusBarAnimationFade];),
dans le fichier info.plist et à l'aide de l'inspecteur d'attributs du fichier .xib. Rien ne semble fonctionner.
Des idées?
Essayez d’ajouter la méthode suivante au contrôleur de vue racine de votre application:
- (BOOL)prefersStatusBarHidden
{
return YES;
}
Vous devez ajouter cette valeur à plist: " Afficher l'apparence de la barre d'état basée sur le contrôleur " et la définir sur "NO".
Cela vous permettra de régler la barre d'état sur le mode masqué. Cela le place à un global contrairement aux autres réponses fournies.
UPDATE: Si vous souhaitez que la barre d'état soit masquée sur l'écran de démarrage, n'oubliez pas de marquer " Masquer lors du lancement de l'application " sur les options de barre d'état cible . Vous pouvez également ajouter " La barre d'état est initialement masquée "à"OUI"sur la pliste si vous ne voulez pas le faire avec du code dans l'application.
Le code que vous avez publié fonctionne pour iOS 6.1 et inférieur. Pour iOS 7, Apple a mis à disposition de nouvelles méthodes permettant de contrôler directement la barre d'état de chaque vue. La désactivation de cette option dans Info.plist vous permettra de masquer la barre d’état, au moins pour l’aperçu du développeur actuel (4).
Pour référence, consultez le guide de transition iOS 7 disponible sur le portail des développeurs Apple.
eh bien, j'essaie de masquer la barre d'état dans toutes mes applications et dans "app" -info.plist et j'ajoute deux lignes dans le dictionnaire "Liste des propriétés de l'information" J'ajoute "Afficher l'apparence de la barre d'état basée sur le contrôleur" défini NO et dans La barre d'état est initialement masquée "définissez OUI et fonctionne pour moi n_n '
Cependant, si vous utilisez UIImagePicker, la barre d'état apparaît à nouveau.
Dans ce cas, vous devriez masquer la barre d'état comme ci-dessous,
- (void)imagePickerController:(UIImagePickerController *)aPicker didFinishPickingMediaWithInfo:(NSDictionary *)info {
// for iOS7
if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
[[UIApplication sharedApplication] setStatusBarHidden:YES];
}
Après de longues recherches, j'ai finalement trouvé une solution très simple qui résout également le problème UIImagePickerController
.
Comme indiqué dans les autres réponses, définissez la barre d'état masquée dans votre didDinegate didFinishLaunching, puis définissez "Afficher l'apparence de la barre d'état basée sur le contrôleur" sur NO.
Ensuite, dans votre AppDelegate:
- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
[application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
et voila - votre barre d’état restera masquée même lorsque le contrôle UIImagePickerController est prioritaire.
C’est mieux que de le «répéter» chaque fois que vous présentez un UIImagePickerController, car il reste masqué dans l’application.
Pour masquer la barre d'état sur un UIViewController particulier, ajoutez simplement ceci:
-(BOOL)prefersStatusBarHidden
{
return YES;
}
J'espère que cela t'aides !
Vous pouvez masquer du résumé du projet. il y a une case à cocher masquer lors du lancement.
Voir l'instantané
J'ai trouvé cette solution pour moi. Cela fonctionne comme un charme . Écrivez ce code sur votre contrôleur de vue sur lequel vous voulez utiliser UIImagePickerController.
- (void)viewWillDisappear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
- (void)viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
Solution rapide
ajoutez simplement ceci à vos contrôleurs de vue:
override func prefersStatusBarHidden() -> Bool {
return true
}
En plus des réponses ci-dessus, assurez-vous d’implémenter la méthode imagePickerControllerDidCancel et d’y ajouter le même code.
J'avais aussi des problèmes avec UIImagePicker. Semblable à la réponse Alones, ma solution était la suivante. J'ai ajouté cette ligne ou code:
[[UIApplication sharedApplication] setStatusBarHidden:YES];
à cette fonction:
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
Je n'ai pas testé cela avec iOS 6 ou version antérieure, mais cela fonctionne très bien sous iOS 7.
Mon problème était que j'ai utilisé le confinement du contrôleur de vue. Seul le contrôleur de vue le plus haut, intégré à un contrôleur de navigation par exemple, peut masquer ou afficher la barre d'état.
J'utilise Xcode 6, cette solution fonctionne pour iOS 7 et 8 pour moi:
Commencez par définir "Afficher l’apparence de la barre d’état basée sur le contrôleur" sur NON dans le fichier de liste.
Deuxièmement, dans AppDelegate, ajoutez ceci:
- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
[application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}