UIAlertView en mode paysage
Mobile App

UIAlertView en mode paysage

Si comme moi vous avez développé une application uniquement en mode paysage (bouton home à droite ou à gauche) vous avez pu noter un problème plus ou moins gênant.

En effet, en utilisant une UIAlertView, celle-ci s’affichera en mode portrait !

Le problème vient du fait que l’on a défini l’orientation dans le fichier plist et que lors du chargement de l’application, l’orientation n’est pas bien reportée au niveau de la « StatusBar » de l’application.

Exemple :

La solution est de réaffecter la valeur d’orientation actuelle de votre iPhone ou iPod Touch à la propriété StatusBarOrientation de l’application avant d’afficher votre alerte :

if([[UIDevice currentDevice] orientation] == UIDeviceOrientationLandscapeRight){   
    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeLeft];
} else {   
    // en mode LandscapeRight par default   
    [[UIApplication sharedApplication] setStatusBarOrientation:UIInterfaceOrientationLandscapeRight];
}

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title]
message:message
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];

[alert show];

[alert release];

 

et voici le résultat :

Visited 2 times, 1 visit(s) today