[Résolu] Subclasser UIImagePickerController

busterTheobusterTheo Membre
août 2015 modifié dans API UIKit #1

Bonjour,


en faisant des recherches sur un problème de mémoire,


 


j'ai trouvé ça qui dit que l'on ne doit pas subclasser UIImagePickerViewController.


 


Lien Apple


 


Et moi je ne sais de quel tuto j'ai sorti ça, ou comment j'y suis arrivé mais j'ai fait ça :



import UIKit
import CoreData

class MyImagePickerController: UIImagePickerController {
override func supportedInterfaceOrientations() -> Int {
return self.presentingViewController!.supportedInterfaceOrientations()
}
}

Et je traine ça depuis 6 mois. 


 


C'est toujours interdit ?


Réponses

  • Je reviens sur ce post. Personne n'a une précision sur ce sujet ?


  • AliGatorAliGator Membre, Modérateur
    Bah qu'est ce que tu veux qu'on te dise ? La doc Apple mentionne toujours explicitement dans son cadre "Important" au début de la doc : " The UIImagePickerController class supports portrait mode only. This class is intended to be used as-is and does not support subclassing. [...] "

    Donc oui c'est toujours interdit.

    Après ça veut pas dire que si tu sous-classes quand même ça va *forcément* pas marcher. Ca veut juste dire que tu n'es pas sensé sous-classer, Apple l'interdit (pourrait refuser ton app en conséquence ?), et surtout que rien ne garantit que ça continue de marcher dans le futur (genre ça pourrait ne plus du tout fonctionner ou faire du grand n'importe quoi sous iOS9 parce que tu as fait quelquechose qui était clairement indiqué comme étant interdit et non supporté), donc en bref, qu'il ne faut pas le faire.
  • Ah ok, donc je dois trouver une autre solution, car ça avait pourtant clean, ce truc.


    Dommage.


     


    Ok, à  moi d'expérimenter.


     


    Merci pour cette réponse claire et précise. C'est ce dont j'ai besoin pour ne pas me perdre dans les méandres, et ne pas perdre du temps.


     


    Super

  • AliGatorAliGator Membre, Modérateur
    En même temps, vu l'usage que tu en fais, et vu les changements qu'il y a eu sur la gestion des différentes orientations Portait/Paysage sur les dernières versions d'iOS (où avant le affineTransform de la rootViewController.view était modifié pour faire la rotation, puis ça a été celle de la window, et maintenant c'est juste un changement de frame, ce qui est bien plus simple et s'adapte bien plus facilement avec AutoLayout et avec tous les contextes où la taille de ton écran peut changer pour diverses raisons dont le changement d'orientation n'est qu'une parmi d'autres), que du coup il y a peut-être des choses à  réviser également de ce côté là .
  • Bon, je vais réviser par là   ::)


     


    Merci


Connectez-vous ou Inscrivez-vous pour répondre.