ios - color - navigation bar swift 4
iOS obtiene el botón Atrás de UINavigationBar para establecer las propiedades de accesibilidad (1)
Esto también me estaba molestando. He estado escribiendo Xcode 7 UI Tests y estaba tratando de encontrar una forma genérica de tocar el botón Atrás sin tener que reemplazarlo con un botón personalizado.
La siguiente es la forma en que resolví esto para las pruebas de interfaz de usuario de Xcode 7, pero también es posible aplicar esto a la automatización de la interfaz de usuario.
Descubrí que (en términos de Xcode 7 UI Tests al menos) el elemento del botón de la barra trasera creado por el sistema consta de dos botones, todo es un botón con una etiqueta de accesibilidad de lo que sea que sea el título del botón, y luego la flecha también es un botón con una etiqueta de accesibilidad de "Atrás".
Por lo tanto, siempre que no haya otros botones en la pantalla identificados como "Atrás", se puede acceder al botón Atrás mediante la etiqueta de accesibilidad "Atrás". Al igual que en el caso de las pruebas de UI:
[[app.buttons matchingIdentifier:@"Back"] elementBoundByIndex:0]
Aquí estoy obteniendo el primer botón que se puede identificar por "Atrás". En mi caso, solo podría haber dos de esos botones: la flecha o el botón completo de la parte posterior (en el caso en que el título del botón de retroceso también sea "Atrás"). Como ambos botones son esencialmente iguales, basta con obtener el primero que encuentre.
Tengo una pila de controladores de navegación donde una de las vistas tiene un título dinámico.
Los controladores de vista y sus títulos son los siguientes:
Main --> ItemsTableView --> ItemDetails
Title:Main Title: NN Items Title: Details
Como el UINavigationController de iOS establece el texto del botón "Atrás" para que sea el título de la pantalla anterior, el botón "Atrás" en la pantalla de detalles dice "<Elementos NN" donde NN es un número que cambia dinámicamente.
Intento hacer algo de automatización de la IU de iOS, pero el sistema establece la etiqueta / ID de accesibilidad del botón Atrás en su texto de botón. Esto significa que la etiqueta de accesibilidad del botón Atrás en la pantalla de detalles cambiará dinámicamente y no puedo encontrarlo en mis scripts.
Si pudiera obtener una referencia al UIBarButtonItem, entonces podría configurar fácilmente accessibilityLabel
o accessibilityIdentifier
del código para que sea una cadena fija, ¿pero no puedo encontrar la manera de hacerlo?
Todas las cosas que he podido encontrar hacen referencia a la configuración del botón Atrás a un botón personalizado a través de self.navigationItem.backBarButtonItem
o similar, pero cuando leo esta propiedad, es nil
. No he podido averiguar cómo obtener acceso al elemento estándar sin reemplazarlo. Prefiero no reemplazar el botón si es posible