2012-09-18 2 views
0

Je travaille sur un application.I universel me sers[self.window addSubview: [_ viewController view]]; déplacer la vue dans la version inférieure de l'iPhone

self.window.rootViewController = self.SecondViewController

pour charger viewcontroller classe dans la méthode AppDelegate. Cette ligne de code fonctionne très bien pour ios versions 4 et ultérieures, mais quand je l'exécute sur mon ios 3.1.3 il se bloque.

Je remplacé ce code avec [self.window addSubview:[SecondViewController view]] et il fonctionne très bien, mais d'abord le point de vue se déplace vers le haut (comme dans la capture d'écran) quand on charge l'application pour la première fois.

Alors bien vouloir me aider à surmonter ce problème merci enter image description here

+0

Pourquoi ... 1. Avez-vous utilisé l'étiquette Xcode? (Maintenant, allez lire son tag wiki!) 2. voudriez-vous supporter iOS 3? –

+0

première fois vérifier la version de l'appareil que vous utilisez en fonction de la version de l'appareil définir votre code – Ayaz

+0

@Ayaz: j'utilise ios 3.1.3.Dans lequel la vue se déplace vers le haut et il fait mon application étrange. – sujay

Répondre

3

La propriété rootViewController a été introduit avec iOS 4.0, qui est la raison de l'accident dans iOS 3.1.3.

Si vous utilisez [self.window addSubview:[SecondViewController view]], il peut arriver que la vue des contrôleurs de vue ne soit pas ajustée pour la barre d'état. Voir Offset on UIWindow addSubview pour une bonne explication.

La solution est d'attribuer le cadre de la vue, dans votre cas

self.SecondViewController.view.frame = [UIScreen mainScreen].applicationFrame; 

avant de l'ajouter comme sous-vue.

+0

bon un :) thanx .. – Nishant

2
SecondViewController.view.frame = CGRectMake(0, 20, 320, 460); 
[self.window addSubview:[SecondViewController view]] 
Questions connexes