UIPopoverController
Vous êtes nombreux à utiliser UIPopoverController ?
Pour ma part, je l'ai utilisé pas mal jusqu'à iOS 6, mais je trouve maintenant que ça se marie assez mal au design "FLAT". De plus, son implémentation est plus compliquée que d'ouvrir un VC dans une modale form sheet par exemple. Bref, je trouve que ce n'est pas aussi propre qu'une modale.
Par exemple, pour classer une liste, on peut afficher une UIPopover pour afficher les tris possibles (date, nom, prénom...etc). On pourrait imaginer la même chose dans un VC ouvert dans une petite modale. Je trouve que c'est plus propre, et plus rigoureux.
Maintenant, pour afficher le panel impression où il n'y a que 2 lignes, je comprends l'utilité du Popover. Reste que j'ai envie de les remplacer dans 80% des cas.
Bref, je n'ai jamais été friand, ni du design, ni de l'utilité réelle des UIPopoverController sur iPad.
Réponses
Oui et non.
Dans un cas on tu changes un tri, tu peux demander à la modale de se fermer au même moment. Donc ça dépend des cas.
Je les utilise partout dans les applis iPad pour les petits claviers numériques
Exemple :
Génial ! Comment definies-tu les rectangle d'origine ?
On n'est pas obligé d'animer la form sheet il me semble. Moins de mal de mer.
Ce cas est en effet intéressant.
Pour le cas que je cite, c'est-à -dire trier une liste, et donc que la Popover affiche une TableView contenant 20 options de tri, l'autre inconvénient, c'est que de toute façon il y a une modale sur l'iPhone pour la même fonction. Cela permettrait aussi d'économiser du code.
Et puis comme je disais au début, l'aspect esthétique me gène.
Or il y a tout ce qu'il faut dans ce protocole pour déduire une frame à partir du NSRange des caractères tapés.
La difficulté c'est que UITextInput manipule ces bizarreries que sont UITextPosition et UITextRange... et non pas des NSRange. Donc la conversion ne saute pas aux yeux. Mais bon, on s'en sort quand même, et au final ça donne ça :
PS : Le NSRange je le récupère dans la méthode de delegate "textView:shouldInteractWithURL:inRange:" (iOS7+) qui est appelée quand l'utilisateur tap sur un lien (texte avec attribut NSLinkAttributeName) de ma NSAttributedString.
S'il faut supporter iOS6 on peut aussi se débrouiller avec un UITapGestureRecognizer -> CGPoint tapé -> UITextPosition = [textView closestPositionToPoint:point] -> offset du caractère tapé -> NSLinkAttributeName + longestEffectiveRange de ce caractère dans la NSAttributedString.
Bonsoir à tous,
Je les utilise également soit comme des menus ou en action contextuelle, exemples :
Voilà .
Edit : Désolé je n'ai pas trouvé comment afficher les images en miniatures...