IPhone - Après avoir écarté Modal-Vue-Contrôleur - gap est à gauche au haut de la page

Lors du démarrage de l'application, si l'utilisateur ne possède pas les informations de connexion stockées, je veux afficher un modal-vue-contrôleur de forcer l'entrée de cette information. J'ai trouvé par essai et erreur, que cela a dû se produire dans viewDidAppear de ma racine-vue-contrôleur. J'ai essayé de le mettre dans le viewDidLoad et viewWillAppear, mais ceux qui n'ont pas de travail, sauf si j'ai affecté la vue de la vue racine contrôleur à la vue de la manette de navigation utilisé dans le modal qui a ensuite causé d'autres problèmes...

J'ai donc:

- (void)viewDidAppear:(BOOL)animated
{
     NewAccountViewController *newAccountViewController = [[[NewAccountViewController alloc] initWithNibName:@"NewAccountViewController" bundle:nil] autorelease];

     UINavigationController *accountNavigationController = [[UINavigationController alloc] initWithRootViewController:newAccountViewController];
  [self presentModalViewController:accountNavigationController animated:YES];       
}

Et dans le newAccountViewController j'ai un simple élément de navigation bouton qui rejette le modèle-vue-contrôleur avec dismissModalViewController.

Tout cela fonctionne et quand le modal est rejeté une vue dans une manette de navigation est visible avec son élément de navigation de titre en haut....

Mais il y a un espace blanc à propos de la même taille que la barre d'état entre la barre d'état et le haut de la blue élément de navigation de la barre. Si je ne fais pas le modal, l'écart n'est jamais là. Il se produit uniquement après le modal est présenté et rejeté. J'ai essayé de faire d'animation:PAS sur le présent et dismissModalViewController. J'ai aussi essayé de ne pas utiliser la manette de navigation dans le modal, et qui n'a rien fait ainsi. Toutes les idées serait génial! Merci.

  • Je n'ai pas testé cette hypothèse, mais il peut être le cas ou non le réglage de la fenêtre de la clé est lié à ce. Vous devez toujours définir comme la clé de la fenêtre à l'aide de [UIWindow makeKeyAndVisible] dans votre application délégué applicationDidFinishLaunching: la méthode. Si vous oubliez de le faire, quelques subtils changements de comportement peuvent se produire, y compris éventuellement cette barre de statut chose.
InformationsquelleAutor Brian | 2009-08-13