iOS 14 configura el menú UIBarButttonItem antes de que se abra
Como iOS14 ofrece una manera fácil de configurar el menú en el UIBarButtonItem
, me pregunto si extraño que no haya una manera fácil de configurar sus elementos, ya que pueden depender del contexto actual.
Veo que lo hay UIDeferredMenuElement
, pero este no parece ser un buen caso de uso para ello.
También veo que la hay primaryAction
, pero no parece haber una forma trivial de llamar al menú desde allí.
Y la tercera opción parece ser reorganizar el menú en cada cambio que pueda afectarlo, pero eso no parece una gran idea.
Asumo que hay algo que me pierdo.
Respuestas
Básicamente, para un elemento de botón de barra simple, no existe tal disposición. Un UIControl como un UIButton tiene un evento .menuActionTriggered
, y es perfectamente razonable, en ese momento, construir y asignar el menú al control, implementando así un menú dinámico que se construye justo en el instante antes de que aparezca el menú.
Pero no puede hacer eso con un elemento de botón de barra, a menos que sea un elemento de botón de barra de vista personalizado con un UIButton en él.
Lo que tendría que hacer de otra manera es observar las condiciones circundantes a través de algún otro mecanismo y simplemente cambiar el menú del elemento del botón de la barra cada vez que cambian las condiciones. Suena como un dolor en el trasero, pero probablemente sea tu única opción. (Supongo que eso es exactamente lo que quiere decir cuando dice "Y la tercera opción parece ser reorganizar el menú en cada cambio que pueda afectarlo, pero eso no parece una gran idea").
Creo que lo que estás pidiendo es razonable y parece un poco tonto que no haya ninguna disposición para ello; Si tiene un buen caso de uso, le recomiendo que presente una solicitud de mejora a Apple.