iphone ios xcode uibarbuttonitem uibarbuttonitemstyle

iphone - Advertencia de "estilo sencillo no admitido en un elemento de navegación" con mi elemento de botón de barra personalizado



ios xcode (8)

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 un método más seguro a partir de los comentarios agregados en)

En el buscador de archivos, haga clic derecho en el guión gráfico y seleccione Open As Source Code

En la página de códigos fuente, busque "normal" y encuentre el adjunto a un elemento de navegación.

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

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

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

Arrastro un Botón de Rectángulo Redondo a la posición del Elemento de Botón de Barra derecho, y configuro una imagen para el Botón de Rectángulo Redondo. Todo funciona bien, excepto la advertencia "Estilo simple no admitido en un elemento de navegación". Incluso si selecciono el estilo del Elemento del Botón de Barra como "Bordeado", la advertencia aún estará allí. ¿Cuál es el problema con Xcode 4.2? ¡Gracias por adelantado!

PD. Personalicé muchos elementos del botón Bar con el botón Round Rect, algunas veces Xcode 4.2 muestra solo una advertencia en un elemento del botón Bar, algunas veces muestra advertencias en todos los elementos del botón Bar.


En la barra de navegación, pruebe usar UIBarButtonItem en lugar del botón Round rect y configure una Imagen para él.


En mi caso, era una imagen de una flecha de retroceso, que se configuró en "Normal".

El mensaje de error parece referirse a todos los elementos en la barra de navegación.


Paré la advertencia acerca de Plain Style metiéndome en el contorno del documento. Eso fue mostrando mi artículo de navegación, y dentro de esos 2 elementos del botón de barra, y dentro de cada uno de ellos un botón. La configuración ofensiva estaba en el elemento del botón de barra. En su inspector de atributos cambié el estilo de simple a Listo, y la advertencia desapareció. Nota: estoy usando XCode 5.


Si está utilizando el guión gráfico, haga clic en la advertencia y debería llevarlo al ítem de navegación ofensivo (tuve dos para el problema, uno me llevó allí y el otro no) - cambie el estilo y limpie el proyecto.


Una vez que esté seguro de que tiene todos los botones de barra en el guión gráfico configurados para todo menos simple, asegúrese de hacer un commit de git y eliminar los datos derivados. Pasé una eternidad tratando de descubrir por qué el problema no se solucionaba a sí mismo, y al eliminar la carpeta de datos derivados lo solucioné por mí.


backBarButtonItem leftBarButtonItem y rightBarButtonItem son objetos UINavigationItem . No hay propiedad de style en UINavigationItem así que esta es la razón de la advertencia. Debe establecer 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 "Personalización de la apariencia" de la referencia de UIBarButtonItem .


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

Cambiaron desde:

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

A:

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

Esto borró las advertencias ... correcto o incorrecto.

Esto puede ser un truco estupendo y la preocupación más grande es que no lo provoqué o eliminé los elementos del botón de barra invisible del documento general. Esto fue después de recorrer todos los elementos uno por uno y descubrir que algunas barras de navegación estaban vacías (sin elementos secundarios) y probablemente ocurrieron con la gran cantidad de copiar y pegar (cmd + c | v) herencia y no usar duplicados (cmd + d) para construir la interfaz Aunque la causa de origen no fue causada por la raíz, el síntoma fue que la barra no mostraba los elementos en la "vista de esquema" del documento para ser reparada. El comportamiento de Interface Builder me parece matizado a veces y un contenedor vacío donde debería haber algo en una vista de contorno es un olor. Bueno, 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 intentar esto ... el control de versiones es su amigo ... No me responsabilizo cuando el guión gráfico está completamente regado y no se compila. Todo lo que obtendrás es un "¡Te lo dije!" Aprendí por las malas un par de veces, pero el control de fuente diligente me salvó un dolor de cabeza.

EDITAR: poner corchetes en bloques de código