Question

j'ai un problème avec popViewController.

j'utilise pushViewController aller à OrdersFormViewController

OrdersFormViewController *ordersFormViewController = [[OrdersFormViewController alloc] initWithNibName:@"OrdersFormViewController" bundle:nil];

[self.navigationController pushViewController:ordersFormViewController animated:YES];
[ordersFormViewController release];

Depuis OrdersFormViewController J'affiche un UIAlertView dans viewDidLoad et appelle popViewController mais ça ne fonctionne pas.

UIAlertView* alertView = [[UIAlertView alloc]
                         initWithTitle:@"Error"
                         message:@"Error"
                         delegate:self
                         cancelButtonTitle:@"OK"
                         otherButtonTitles:nil];
[alertView show];
[alertView release];

[self.navigationController popViewControllerAnimated:YES];

La vue n'est pas "supprimée" du navigationController, mais lorsque vous appuyez sur le bouton de retour standard dans la barre de navigation, seule la barre de navigation change et non la vue réelle.

Quelqu'un a-t-il une idée de pourquoi cela se produit ?

Était-ce utile?

La solution

Vous devez attendre que l'utilisateur rejette l'alerte.Cela crée moins de confusion pour l'utilisateur.

Vous avez répondu à mon commentaire que cela fonctionnait, pour une raison magique que je ne comprends pas.

Autres conseils

J'ai eu un problème similaire, je l'ai résolu en utilisant

[self.parentViewController.navigationController popViewControllerAnimated:YES];

J'espère que cela pourra aider.

Vous ne savez pas exactement ce que vous essayez d'accomplir ;mais essayez de l'ajouter à viewDidAppear plutôt.

viewDidLoad il se peut que vous soyez appelé avant que vous fassiez la première pushViewController appel.

Vous devriez faire tout cela dans le -viewDidAppear :méthode.Lorsqu'elle est appelée ici, la séquence d'animation est actuellement en cours et votre contrôleur n'aura pas encore été animé à l'écran.Attendez d'avoir animé à l'écran, puis rejetez-vous.

Si vous avez créé votre projet à partir d'un modèle maître-détails, supprimez le contrôleur de vue fractionnée.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top