Advertencia de" Estilo simple no compatible en un elemento de navegación " con mi Elemento de Botón de Barra personalizado


Arrastro un Botón Recto Redondo a la posición del Elemento del Botón de la Barra derecha y establezco una imagen en el Botón Recto Redondo. Todo funciona bien, excepto la advertencia "Estilo simple no soportado en un elemento de navegación". Incluso si selecciono el estilo del elemento del botón de barra a "Bordeado", advertencia todavía estar allí. ¿Qué pasa con Xcode 4.2? Gracias de antemano!

Ps. Personalizé muchos elementos de Botón de Barra con Botón Recto Redondo, algunas veces Xcode 4.2 muestra solo una advertencia en un elemento de Botón de Barra, algunos times muestra advertencias en todos los elementos del botón de Barra.

Author: lu yuan, 2012-06-08

8 answers

Pude eliminar estos errores editando manualmente los archivos del guion gráfico y encontrar la entrada ofendedora style="plain" en los elementos del botón de barra en el elemento <navigationItem>.

Cambiado de:

<barButtonItem key="rightBarButtonItem" style="plain" id="juB-DL-F9i">

A:

<barButtonItem key="rightBarButtonItem" id="juB-DL-F9i">

Esto despejó las advertencias... bien o mal.

Esto puede ser un truco estupendo y la mayor preocupación es que no causa raíz o eliminar los elementos de botón de barra invisible del documento en general. Esto fue después de pasar por todos los elementos uno por uno y descubrir que algunas barras de navegación estaban vacías (sin hijos) y probablemente ocurrió con la gran cantidad de herencia de copiar y pegar (cmd+c|v) y no usar duplicado (cmd+d) para construir la interfaz. Aunque la causa de origen no era la raíz, el síntoma era que los elementos de la barra no se mostraban en el documento "vista de esquema" que se iba a corregir. El comportamiento del creador de interfaces me parece matizado a veces y un contenedor vacío donde debería haber algo en una vista de esquema es un olor. Bueno, lo es para mí ahora. A veces, eliminar el nodo ofensivo y reconstruir soluciona los problemas más extraños.

ADVERTENCIA: haga una copia de seguridad de sus guiones gráficos antes de probar esto... control de versiones es tu amigo... No asumo ninguna responsabilidad cuando su guion gráfico está completamente cubierto y no compilaré. Todo lo que obtendrás es un " ¡Te lo dije!"Aprendí de la manera difícil algunas veces, pero el control diligente de la fuente me ahorró un dolor de cabeza.

EDITAR: poner corchetes en bloques de código

 116
Author: Hunter-Orionnoir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-07-04 00:08:23

En caso de que haga clic en la advertencia y no vaya al elemento de navegación ofensivo, haga lo siguiente. (representación visual de la respuesta de Hunter con el método más seguro de los comentarios añadidos en)

En el explorador de archivos, haga clic derecho en el guion gráfico y seleccione Open As Source Code

introduzca la descripción de la imagen aquí

En la página del código fuente, busque "plain" y encuentre el que está adjunto a un elemento de navegación.

introduzca la descripción de la imagen aquí

Para obtener el nombre de la vista, ponga "escena" en la búsqueda barra y haga clic en la flecha de búsqueda hacia atrás para buscar la primera instancia en esa etiqueta por encima de el navigationItem

introduzca la descripción de la imagen aquí

Aquí está el nombre de su escena, ahora puede cambiar su vista de guion gráfico a Interface Builder - Storyboard con el método de clic derecho descrito anteriormente, y luego vaya a seleccionar la escena en el menú escena y el elemento de barra dentro de ella.

introduzca la descripción de la imagen aquí

Vaya al inspector de atributos y cambie el estilo de Plain a Bordered

introduzca la descripción de la imagen aquí

 23
Author: dstudeba,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-12 17:48:47

Detuve la advertencia sobre el estilo simple husmeando en el Esquema del documento. Eso estaba mostrando mi Elemento de Navegación, y dentro de los Elementos de Botón de 2 Barras, y dentro de cada uno de esos un Botón. El ajuste ofensivo estaba en el elemento del botón de Barra. En sus atributos inspector cambié el Estilo de Simple a Hecho, y la advertencia se fue. Nota: Estoy usando XCode 5.

 13
Author: MarkAurelius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-05-08 02:36:10

Si está utilizando storyboard, haga clic en la advertencia y debería llevarlo al elemento de navegación ofensivo (tenía dos para el problema, uno me llevó allí el otro no): cambie el estilo y limpie el proyecto.

Estilo de botón de Barra establecido en liso

 6
Author: Recycled Steel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-06-03 10:26:26

backBarButtonItem leftBarButtonItem y rightBarButtonItem son UINavigationItem objetos. No hay ninguna propiedad style en UINavigationItem así que esta es la razón de la advertencia. Debe configurar los barButtons programáticamente:

IOS 4:  

UIButton *bt=[UIButton buttonWithType:UIButtonTypeRoundedRect];
 [bt setFrame:YourFrame];
 //[bt setImage:[UIImage imageNamed:@"backBT"] forState:UIControlStateNormal];
 [bt addTarget:self action:@selector(popViewController:) forControlEvents:UIControlEventTouchUpInside];
 UIBarButtonItem *leftButton=[[UIBarButtonItem alloc] initWithCustomView:bt];
 self.navigationItem.leftBarButtonItem=leftButton;

Para iOS 5+:

Lea la sección "Personalizar apariencia" de Referencia UIBarButtonItem.

 5
Author: Mat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-03 11:10:14

En la barra de navegación intente usar UIBarButtonItem en lugar del botón rect redondo y establezca una imagen para él .

 1
Author: iOSDev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-08 09:11:11

En mi caso, era una imagen de una flecha hacia atrás, que se estableció en "Llano".

El mensaje de error aparece para referirse a todos los elementos de la barra de navegación.

 1
Author: user462990,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-16 16:32:10

Después de que esté seguro de que tiene todos los botones de la barra en el guion gráfico configurados en cualquier cosa menos simple, asegúrese de hacer una confirmación de git y eliminar los datos derivados. Pasé una eternidad tratando de averiguar por qué el problema no se estaba arreglando a sí mismo, y la eliminación de la carpeta de datos derivados lo solucionó para mí.

 0
Author: Sethmr,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-10 14:40:20