iOS 14は、UIBarButttonItemメニューを開く前にセットアップします

Aug 19 2020

iOS14はでメニューを設定する簡単な方法を提供しているのでUIBarButtonItem、現在のコンテキストに依存する可能性があるため、アイテムを設定する簡単な方法がないのではないかと思います。

あるUIDeferredMenuElementようですが、これは良いユースケースではないようです。

また、あることはわかりprimaryActionますが、そこからメニューを呼び出す簡単な方法はないようです。

そして3番目のオプションは、それに影響を与える可能性のある変更ごとにメニューを入れ替えることであるように思われますが、それは素晴らしいアイデアとは思えません。

見逃していることがあると思います。

回答

1 matt Aug 19 2020 at 16:29

基本的に、単純なバーボタンアイテムの場合、そのような規定はありません。UIButtonのようなUIControlにはイベント.menuActionTriggeredがあり、その時点で、メニューを作成してコントロールに割り当てることは完全に合理的です。したがって、メニューが表示される直前に作成される動的メニューを実装します。

ただし、UIButtonを含むカスタムビューのバーボタンアイテムでない限り、バーボタンアイテムを使用してこれを行うことはできません。

それ以外の場合は、他のメカニズムを介して周囲の状態を監視し、状態が変化するたびにバーボタン項目のメニューを変更する必要があります。お尻の痛みのように聞こえますが、おそらくそれが唯一の選択肢です。(「そして、3番目のオプションは、それに影響を与える可能性のある変更ごとにメニューを入れ替えているようですが、それは素晴らしいアイデアではないようです」と言うとき、まさにそれが意味していると思います。)

あなたが求めていることは合理的であり、それに対する規定がないのはちょっとばかげているように思えます。良いユースケースがある場合は、Appleに拡張リクエストを提出することをお勧めします。