Mes applications a une fonctionnalité supplémentaire pour l'iPhone 5 et j'ai créé une classe distincte avec un .xib pour cela. Je souhaite détecter la hauteur de l'écran (sauf si elle est possible d'obtenir l'identifiant / modèle de périphérique) et chargez un contrôleur de visualisation différent en conséquence. J'ai essayé ceci:
- (IBAction)select:(id)sender { CGRect screenRect = [[UIScreen mainScreen] bounds]; CGFloat screenWidth = screenRect.size.width; CGFloat screenHeight = screenRect.size.height; if (screenHeight == 960) { Selection *selectView =[[Selection alloc] initWithNibName:nil bundle:nil]; selectView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentModalViewController:selectView animated:YES]; } else { Selection_5 *selectView =[[Selection_5 alloc] initWithNibName:nil bundle:nil]; selectView.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; [self presentModalViewController:selectView animated:YES]; } }
4 Réponses :
Essayez http://github.com/erica/uidevice-extension/
[[Selection alloc] initWithNibName:@"here_is_nibname" bundle:nil];
Merci, à l'aide de Float ScreenHeight = [UISCREEN Mainscreen] .bounds.Size.Height a travaillé.
En mode Paysage, je ne peux pas accueillir la largeur exacte de l'appareil, s'il vous plaît n'importe quel partage comment obtenir ...
Dans le paysage, vous devez comparer non pas avec la hauteur 568, mais avec une largeur 568.
Premièrement, vous ne voulez pas vérifier par type de périphérique. Que se passerait-il sur les nouvelles touches iPod (qui ont l'écran de même taille) ou iPhone de la même taille. P>
Mais je pense que le problème ici est que vous recherchez la taille de l'écran en fonction du nombre actuel de pixels qui - bizarrement - n'est pas ce que vous voulez. N'oubliez pas que sur un écran de rétine, tout est "doublé". Dans l'interface utilisateur, vous utilisez la taille "normale" pour tout ce qui, dans ce cas, est la moitié du nombre de pixels. P>
En bref: Vérifiez une hauteur d'écran de 480 (normale) ou 568 (iPhone 5). P>
Ah, j'ai enfin obtenu ce que le 568 faisait référence! J'utilise cela pour charger un XIB différent pour les appareils 4 ".
Dans mon application, je dois charger un fichier .xib pour iPhone, iPhone5 / iPod Touch et iPad, c'est le code que j'utilise: espère que cela aide quelqu'un besoins:) p> p>
Si vous avez cette convention de dénomination , vous pouvez faire comme suit cette p>
Si la méthode NibnameForClass est placée comme une fonction statique dans une classe UTIL, elle pourrait être utilisée partout dans l'application. Je préfère cela sur la solution de Gmoges.
Oui, ça a fonctionné. J'ai utilisé Float ScreenHeight = [UISCREEN PRINCIENNESCREEN] .Bounds.Size.Height
Cela vous aident à résoudre ce problème Stackoverflow.com/questions/13275144/...