J'ai une bibliothèque qui construit de manière programmatique un UIView qui présente mon comportement personnalisé. Cette bibliothèque peut être déposée dans de nombreuses applications différentes, à différents endroits de la hiérarchie des vues. Dans certaines circonstances, la vue doit être "étendue" pour remplir l'écran. Pour ce faire, mon code parcourt actuellement la hiérarchie des vues jusqu'à ce que je trouve une vue sans parent, construise une nouvelle vue et l'insère en tant que sous-vue de la vue trouvée, puis effectue une transition animée entre les deux. Pour quitter cette nouvelle vue, il suffit de la cacher, ce qui rétablit l'état précédent.
J'ai deux questions.
- Y a-t-il une meilleure façon de procéder ? (En particulier, je n'aime pas vraiment traverser la hiérarchie des vues de cette façon).
- Quelles mauvaises choses peuvent se produire avec cette approche ? Une chose qui pourrait mal tourner, par exemple, est que la vue qui était précédemment affichée ne sait pas que cela s'est produit et peut donc se comporter de manière erratique. (Cela pourrait être résolu en inventant un protocole de délégation pour ce comportement ou en utilisant un protocole existant que je ne connais pas actuellement).
L'objectif est évidemment de faire en sorte que l'application/la vue/le contrôleur qui la contient ait à faire le moins de choses possible, à part créer un rectangle et construire le contrôleur de ma vue.