Tengo un controlador de vista que es la vista detallada de una tabla. Cuando hace clic en la fila de la tabla, lo lleva a la vista de detalles. La vista de detalles está incrustada en un controlador de navegación de modo que hay un botón en la parte superior izquierda de la barra de navegación que lo envía de regreso a la tabla. Hasta aquí todo bien.
Ahora quiero agregar un botón de edición en el lado derecho de la barra de navegación para que pueda editar la vista de detalles. Mi plan es que esto agregará otro controlador de vista de manera modal que le permite editar los detalles del elemento. Cosas estándar.
Sin embargo, cuando intento arrastrar un elemento de botón de la barra de la lista de objetos a la barra de navegación, no se necesita. En cambio, cuando suelto el botón del mouse, deja el botón de la barra en el controlador de la barra de pestañas en la parte inferior. (Mi esquema de navegación incluye diferentes pestañas y para cada pestaña una tabla, vista detallada, etc.)
Cualquiera se ha topado con esto antes y puede sugerir qué estoy haciendo mal o algún tipo de solución para agregar el elemento del botón de la barra al lado derecho de la pantalla de navegación. ¿Tengo que agregarlo en el código?
Gracias por cualquier sugerencia.
fuente
Respuestas:
Tengo el mismo problema al usar Xcode6 y noté que UINavigationItem se agrega automáticamente para el primer ViewController que inserta en NavigationController, pero para los ViewControllers posteriores, tendrá que agregarlo manualmente de la siguiente manera:
Ahora tendrás tus botones de barra pegados en la parte superior de tu escena.
Actualización La solución todavía funciona con XCode 7, pero quería agregar una foto más descriptiva. En caso de que alguien no esté realmente familiarizado con los nombres estándar o técnicos mencionados anteriormente. Observe las flechas rojas a la derecha, se refieren al paso 1, paso 2 mencionado anteriormente. También observe la jerarquía de vistas en el rectángulo rojo de la izquierda.
fuente
self.navigationItem.rightBarButtonItem = ...
funcionará. Supongo que el UINavigationController en el primer VC lo instancia para todos los VC posteriores que se insertan en la pila. Sin embargo, al arrastrar manualmente uno allí, ¿por qué no terminas con 2 UINavigationItems uno encima del otro? ¿El que arrastró manualmente y el que ya está allí desde UINavigationController?Truco desagradable:
Entonces, el contenido será editable y tendrá un estilo no obsoleto para segue.
fuente
UIBarButtonItem
en un controlador de vista en Xcode 7.3 .Es probable que el controlador de vista de su guión gráfico no tenga un archivo
Navigation Item
. Puede arrastrar uno de la biblioteca de objetos y soltarlo en su controlador de vista.A continuación, podrá arrastrar y soltar los elementos del botón de la barra en el lado izquierdo o derecho de la barra de navegación.
fuente
Lo resolví. arrastre en 'Elemento de navegación' a su vista detallada. de lo que puede arrastrar en el elemento del botón de barra.
fuente
La forma en que solucioné este problema fue, en lugar de arrastrar un UINavigationController al Storyboard e intentar agregar UIBarButtonItems a eso, arrastré un UITableViewController y luego fui a
Editor-> Insertar en-> Controlador de navegación
Lo que dio el mismo resultado que antes, excepto que pude agregar UIBarButtonItems a ambos lados de la barra de navegación sin problemas.
fuente
En realidad, es un problema de xcode. Un truco que funcionó para mí es agregar el botón de la barra en VER ESTRUCTURA DE ARCHIVO A LA IZQUIERDA. Se instaló agregando directamente en la vista. Espero que te ayude. :)
fuente
Creo que es un error. Tuve el mismo problema Solucioné este problema deshabilitando las clases de tamaño y luego habilitándolo.
Puede deshabilitar y habilitar las clases de tamaño en el documento del constructor de interfaces.
fuente
También tuve este problema, cerrar y volver a abrir el proyecto funcionó para mí.
fuente
Creo que es una peculiaridad de XCode. Tuve el mismo problema. Tuve que restablecer Xcode y cambiar la ubicación de las cosas en el guión gráfico para finalmente hacerlo funcionar. Está funcionando ahora.
fuente
Creo que esto es un error de Xcode. En Xcode 8, cambie el
segue
guión gráfico antes del controlador de vista de la barra de pestañas a todas sus opciones (show detail
,present
...). Luego volvamos ashow
. Intente arrastrar los elementos del botón de la barra y modificar el mosaico. ¡Esto funciona para mi!fuente
¿Intentaste "limpiar" tu proyecto? Sé que eso me ayuda a veces (solo ve a "Producto"> "Limpiar"). O, alternativamente, elimine la barra de navegación y vuelva a intentarlo.
Si cree que es un error de programación, no dude en pasar su código. Estaría feliz de ayudar en todo lo que pueda. :)
fuente
Debe restablecer xCode IDE. Cierre xCode y escriba los siguientes códigos en la terminal ... Funcionará.
fuente
Mismo problema. Tenía un controlador de vista de tabla dentro de un controlador de navegación y muchos ViewControllers seguían más abajo en la cadena. Se estaba creando un 'Elemento de navegación' automáticamente para el PRIMER controlador de vista raíz y pude agregar un 'Elemento de botón de barra' a esto sin ningún problema. A través del Storyboard, arrastre y suelte. Pero eso es todo. En el siguiente controlador de vista de tabla y otros controladores de vista, a pesar de que estaban dentro del controlador de navegación inicial (apareció el botón de retroceso generado automáticamente), el guión gráfico nunca me dejaba agregar un elemento de botón de barra.
La solución de Wael Showair no funcionó para mí. Los elementos del botón de la barra no aparecerían.
Lo resolví programáticamente al final (Swift 2.0):
No se necesita ningún elemento de navegación adicional o elemento de botón de barra.
fuente
Yo también estaba enfrentando el mismo problema Pude solucionar este problema seleccionando la opción del controlador de vista raíz y luego en la matriz simulada cambié la opción de la barra superior a Barra de navegación opaca y pude agregar el elemento en la parte superior de la barra de navegación. esta respuesta ayudará a alguien.
fuente
Tuve el mismo problema en xcode 8. Tuve que simplemente cerrar xcode y volver a abrir el proyecto y luego pude agregar el botón de barra al controlador raíz sin ningún problema.
fuente
Para XCode 8
Aquí hay muchas respuestas. Probé algunos de ellos pero no pude hacerlo. Entonces encontré mi solución, solo seleccione la suya
ViewController
, vaya a la sección Inspector de atributos y cambie la barra superior a Barra de navegación opaca y Boom. Verá la barra de navegación en su guión gráfico. Puede cambiar el título o agregar algún elemento. Si no desea mantener Opaque , puede cambiar el estilo a Inferido .fuente
En Xcode 10, acabo de cambiar el tipo de segue que va a este nuevo controlador de vista a 'Push (obsoleto)', agregué el elemento de navegación tal como estaba permitido después de que hice este cambio. Si vuelve al tipo de segue que deseaba originalmente, el elemento de navegación permanecerá.
fuente
En lugar de arrastrar el "Elemento del botón de la barra" al "Controlador de navegación", arrástrelo al "Controlador de vista detallada". A medida que incrusta la vista de detalles en la "Vista de navegación", el "Elemento de navegación" se agregará al "Controlador de vista de detalles". Si arrastra el "Elemento del botón de la barra" al lado derecho del elemento de navegación, el elemento se incluirá en los "Elementos del botón de la barra derecha".
fuente
como dijo Mark Lyons, utilicé la misma solución.
fuente
En Xcode 11, puede arrastrar un botón a la barra de navegación para crear su botón de barra.
fuente