iOS 14 configure le menu UIBarButttonItem avant son ouverture
Comme iOS14 offre un moyen facile de configurer le menu sur le UIBarButtonItem
, je me demande si je manque qu'il n'y ait pas de moyen facile de configurer ses éléments car ils peuvent dépendre du contexte actuel.
Je vois qu'il y en a UIDeferredMenuElement
, mais cela ne semble pas être un bon cas d'utilisation?
Je vois aussi qu'il y en a primaryAction
, mais il ne semble pas y avoir de moyen trivial d'appeler le menu à partir de là.
Et la troisième option semble être de remanier le menu à chaque changement qui pourrait l'affecter, mais cela ne semble pas être une bonne idée.
Je suppose qu'il y a quelque chose qui me manque.
Réponses
Fondamentalement, pour un élément de bouton de barre simple, il n'y a pas de telle disposition. Un UIControl comme un UIButton a un événement .menuActionTriggered
, et il est parfaitement raisonnable, à ce moment-là, de construire et d'assigner le menu au contrôle, implémentant ainsi un menu dynamique qui est construit juste à l'instant avant que le menu n'apparaisse.
Mais vous ne pouvez pas faire cela avec un élément de bouton de barre - à moins qu'il ne s'agisse d'un élément de bouton de barre de vue personnalisé avec un UIButton.
Ce que vous auriez à faire autrement, c'est de surveiller les conditions environnantes via un autre mécanisme et de simplement changer le menu de l'élément du bouton de la barre à chaque fois que les conditions changent. Cela ressemble à une douleur dans les fesses, mais c'est probablement votre seule option. (Je suppose que c'est exactement ce que vous voulez dire lorsque vous dites "Et la troisième option semble être de remanier le menu à chaque changement susceptible de l'affecter, mais cela ne semble pas être une bonne idée.")
Je pense que ce que vous demandez est raisonnable et il semble un peu ridicule qu'il n'y ait aucune disposition à cet effet; si vous avez un bon cas d'utilisation, je vous recommande de déposer une demande d'amélioration auprès d'Apple.