Alors, tout indice à ce sujet? J'ai dû utiliser [auto-renvoi de modalviewController pour rejeter Modalviews. Fait drôle: lors du renvoi d'une tabbarcontroller, je pouvais toujours utiliser la référence à ParentViewController, lors de la mise en service d'une liste de visualisation régulière, non pas. P>
6 Réponses :
sur iOS 5, vous devrez utiliser le sélecteur code> présageViewController code> au lieu du sélecteur code> parentviewController code>. p>
Merci mon pote. Je souhaite juste que le compilateur donnerait une indication à ce sujet, comment diable les gens sont-ils supposés le savoir? Lisez la documentation entière?
Le problème est que le code 4.x existant ne fonctionne plus dans les périphériques iOS5 à l'aide de parentviewController. De plus, si j'utilise PrésentationViewController, n'importe quel code de code 4.x, car il ne reconnaît pas le sélecteur. Corrigez-moi si j'ai tort, s'il-vous plait. Je commence à avoir un très mauvais sentiment à propos de iOS5.
Merci Jason et Vinnie! Cet iOS 5 commence à créer de la douleur pour moi :(
@Vinnie - Ce n'est pas la plus grande solution, mais vous pouvez toujours mettre en œuvre une méthode pour déterminer conditionnellement quel sélecteur doit être utilisé pour obtenir la présentation / parent VC. - (UIViewController *) GetPresentingViewController: (UIIMAGEPICKERCONTROLLER *) PICKER {RETURN ([PICKER RÉVISELLORY: @Selector (PrésentationViewController)]? [Picker PrésentationViewController]: [Picker ParsiVietroller]); }
Oui, je suis au courant des travaux. J'ai fini par utiliser une propriété CustomParentViewController que j'ai créée moi-même. Mon os à choisir est avec mes applications précédentes dans l'App Store. Ils sont cassés. Certains je ne sont pas mis à jour depuis longtemps et ne voulaient pas vraiment plonger dans le code pour résoudre les problèmes de pommes.
L'application que j'ai dans le magasin a été construite à l'aide de iOS SDK 4.3 et utilise Il suffit de penser que je mentionnerais que le renvoi du parent devrait travailler sur iOS 5 (au moins dans mon cas avec le SDK iOS 4.3). Je ne peux pas parler de SDK précédents ou d'autres sélecteurs avec parentviewController. P> Self.ParentViewController DémissionModalViewControlleranimated: Oui Code>. Il continue de travailler avec des appareils iOS 5. Je pensais que cela a été construit sur SDK 4.3. Maintenant, lorsque je le mettant à jour avec le nouveau SDK Xcode et iOS 5.0, il ne fonctionnera pas tel quel et je dois changer toutes les choses de clôture de la vue pour utiliser la solution de contournement du sélecteur conditionnel mentionné ci-dessus. (Yuck!) P>
-(UIViewController *)getParentViewController{ float currentVersion = 5.0; float sysVersion = [[[UIDevice currentDevice] systemVersion] floatValue]; if (sysVersion >= currentVersion) { // iOS 5.0 or later version of iOS specific functionality hanled here return self.presentingViewController; } else { //Previous than iOS 5.0 specific functionality return self.parentViewController; } }
Alternativement, [auto réponsenelecteur: @Selector (présentationViewController)]; code>. De plus, ne préfixez pas la méthode avec
obtenir code>.
+1 pour @ Ivanvučica. Prendre des décisions basées sur la version du système est une forme médiocre. Laissez l'objet vous dire à la place.
Pour votre utilisation particulière de licenciement du contrôleur de vue modal, vous voudrez peut-être garder à l'esprit le deuxième paragraphe fort> de la section de discussion de la documentation d'Apple pour Le contrôleur de vue parent est responsable de la mise en service du modal
Voir le contrôleur, il a présenté avec le
PresentModalViewController: animé: méthode. Si vous appelez cette méthode
sur le contrôleur de vue modal lui-même, cependant, la vue modale
contrôleur transforme automatiquement le message à sa vue parent
Contrôleur. P>
Si vous appelez cette méthode sur le contrôleur de vue modal lui-même, cependant,
Le contrôleur de vue modal transforme automatiquement le message à son
Contrôleur de vue parent. P>
blockQuote>
La solution de Jason est également géniale et utile! Merci! P> -DismissModalViewControléranimated: code> . P>
J'ai construit une catégorie qui ajoutez Il se désactive sur iOS 5. P>
Vous pouvez l'utiliser de manière transparente. S'il vous plaît voir Backward-Modal . P> PrésentationViewController code> sur iOS 4. p>
J'ai trouvé un joli blog post expliquant ce problème: