Mon problème semble être un peu bizarre, j'ai une coutume UITarBar
qui gère plusieurs UINavigationController
s avec un UIViewController
qui présente ces NavController
s modalement sur un bouton UITabBar
touchUpInside
, donc dans iOS 5 mon application se bloque à cause de la méthode dismissModalViewControllerAnimated:
... Et si changer la méthode de rejet à la nouvelle sur iOS 5 (dismissViewControllerAnimated:completion:
) il ne rejette pas le NavController
. Voici un code sur la façon dont je change les contrôleurs:rejetant UINavigationController dans iOS 5
- (void) changeController
{
if ([self.generalViewController respondsToSelector:@selector(dismissViewControllerAnimated:completion:)]) {
[self.generalViewController.presentingViewController dismissViewControllerAnimated:YES completion:nil];
} else {
[self.generalViewController dismissModalViewControllerAnimated:NO];
}
[self.anotherNavController.view addSubview:customTabBar];
if ([self.generalViewController respondsToSelector:@selector(presentViewController:animated:completion:)]) {
[self.generalViewController presentViewController:anotherNavController animated:NO completion:nil];
} else {
[self.generalViewController presentModalViewController:anotherNavController animated:NO];
}
Tout est géré dans le AppDelegate
. Merci pour les conseils.
EDIT: J'ai trouvé quelque chose sur ce poste dismissModalViewControllerAnimated: (and dismissViewControllerAnimated) crashing in iOS 5 et fait ce qu'il a fait (présenté le premier viewControllerAnimated animé) et puis tout comme avant l'iOS 5 vérifie les nouveaux sélecteurs de presentViewController et tout fonctionne bien sur le simulateur mais pas sur l'appareil ..
Votre premier test de condition si le generalViewController répond au sélecteur. Si elle est évaluée à true alors ce message est envoyé à presentingViewController ??? – Geoffroy
Ouais parce que j'ai lu c'est la façon de faire ainsi dans iOS 5 –
La vérification est nécessaire si vous voulez que la même application fonctionne sur iOS 4.x et plus tôt; Si vous ne ciblez que iOS 5, il n'est pas nécessaire de vérifier. – benzado