Advertencia de "Estilo simple no compatible con un elemento de navigation" con mi elemento de button de barra personalizado

Arrastre un Botón Rectángulo Redondo a la position del Artículo del Botón de Barra derecho, y establezca una image en el Botón Rectángulo Redondo. Todo funciona bien, excepto la advertencia "Estilo simple no compatible en un elemento de navigation". Incluso si selecciono el estilo del elemento del button de barra en "Bordeado", la advertencia aún estará allí. ¿Qué pasa con Xcode 4.2? ¡Gracias por adelantado!

PD. Personalice muchos elementos del button de barra con el button Round Rect, algunas veces Xcode 4.2 muestra solo una advertencia en un elemento del button de barra, algunas veces muestra advertencias en todos los elementos del button de barra.

Pude eliminar estos errores editando manualmente los files del guión gráfico y encontré la input del estilo ofensivo = "simple" en los elementos del button 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 aclaró las advertencias … correctas o incorrectas.

Esto puede ser un estupendo truco y la mayor preocupación es que no rooté el problema ni elimino los elementos del button de barra invisible del documento general. Esto fue después de examinar todos los elementos uno por uno y descubrir que algunas barras de navigation estaban vacías (sin hijos) y probablemente ocurrieron con la gran cantidad de copyr y pegar (cmd + c | v) inheritance y no usar duplicado (cmd + d) para build la interfaz. Aunque la causa de origen no fue la raíz causada, el síntoma fue que los elementos de la barra no se mostraron en el documento "vista de esquema" para repararse. El comportamiento de Interface Builder me parece tan matizado a veces y un contenedor vacío donde debería haber algo en una vista de esquema es un olor. Bueno, es para mí ahora. A veces, eliminar el nodo infractor y rebuild arregla los problemas más extraños.

ADVERTENCIA: haga una copy de security de sus guiones charts antes de probar esto … el control de la versión es su amigo … No me responsabilizo cuando su guión gráfico está completamente comprimido y no se comstackrá. Todo lo que obtendrás es un "¡Te lo dije!" Aprendí de la manera difícil unas cuantas veces, pero el control diligente de la fuente me salvó un dolor de cabeza.

EDITAR: poner los paréntesis en bloques de código

En caso de que click la advertencia y no vaya al elemento de navigation infractor, haga lo siguiente. (representación visual de la respuesta de Hunter con un método más seguro de los comentarios agregados)

En el browser de files, haga clic derecho en el guión gráfico y select Open As Source Code

introduzca la descripción de la imagen aquí

En la búsqueda de la página del código fuente "sin formatting", y encuentre el que está adjunto a un elemento de navigation.

introduzca la descripción de la imagen aquí

Para get el nombre de la vista, coloque "scene" en la barra de búsqueda y click la flecha de búsqueda posterior para search la primera instancia en esa label sobre el elemento de navigationItem

introduzca la descripción de la imagen aquí

Este es el nombre de su Escena, ahora puede cambiar su vista de Storyboard de nuevo a Interface Builder - Storyboard con el método de clic derecho descrito anteriormente, y luego vaya a seleccionar la escena en el menu de 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 Bordenetworking

introduzca la descripción de la imagen aquí

Detuve la advertencia sobre Plain Style haciendo un recorrido en el documento Outline. Eso mostraba mi elemento de navigation, y dentro de ese 2 elementos del button de barra, y dentro de cada uno de ellos un button. La configuration ofensiva estaba en el elemento del button de barra. En su inspector de attributes, cambié el estilo de Simple a Listo, y la advertencia desapareció. Nota: Estoy usando XCode 5.

Si está utilizando storyboard, click la advertencia y debería llevarlo al elemento de navigation infractor (tuve dos por el problema, uno me llevó allí y el otro no), cambió el estilo y limpió el proyecto.

Estilo del botón de barra establecido en plano

backBarButtonItem leftBarButtonItem y rightBarButtonItem son objects UINavigationItem . No hay ninguna propiedad de style en UINavigationItem así que esta es la razón de la advertencia. Debe establecer los botones de barra de forma progtwigda:

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 o más:

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

En la barra de navigation intente utilizar UIBarButtonItem en lugar del button Round rect y configure una Imagen para ello.

En mi caso, se trataba de una image de una flecha hacia atrás, que se configuró como "Plano".

El post de error parece referirse a todos los elementos en la barra de navigation.

Una vez que esté seguro de que tiene todos los botones de barra en el guión gráfico configurados de forma diferente a la normal, asegúrese de hacer un git commit y eliminar los datos derivados. Pasé toda la vida intentando averiguar por qué el problema no se estaba arreglando, y la eliminación de la carpeta de datos derivados me lo solucionó.