2012-02-02 13 views
9

Estoy construyendo una aplicación de iOS y tengo la mayor parte del código/GUI incorporado (es una aplicación de vista única). Ahora tengo el archivo .xib y el archivo controller.h uno al lado del otro y quiero asociar un clic de botón con una determinada acción. Cada vez que intento no pasa nada. El indicador de IU que estoy arrastrando aparece pero no me deja conectarme al método. Esto sucede para todos los objetos/métodos.Ctrl-Arrastrar desde el botón al método no funciona. Xcode/Interface Builder

¡Tengo un proyecto casi idéntico que también funciona bien!

Respuesta

20

Seleccione su archivo XIB y luego seleccione "Propietario de archivos" que es el cubo amarillo. En la barra lateral de utilidades, seleccione el icono con el círculo y la flecha dentro de él (que es el "Inspector de conexiones"). Puede entonces controlar + Arrastrar su a su botón.

//// //// Editar

Después de investigar su proyecto ... Bastante seguro de que ha borrado un guión gráfico y luego agregó un .xib pero no fijó su clase, o un enlace que es vista como una salida.

de hacerlo:

  1. Seleccione la nueva vista (XIb), entonces selct la vista principal, y en el inspector de identidad, establece que es la clase a su nombre de clase personalizada "AVYSViewController."

  2. Cambiar al inspector de conexiones y Control + Arrastra la toma "ver" a la vista principal en tu XIB.

Además, su proyecto estaba buscando el archivo MainStoryBoard.storyboard. Así que deshazte de esa configuración seleccionando tu proyecto, luego seleccionando tu objetivo, y en la pestaña "Resumen", elimina cualquier cosa en el campo "Guión gráfico principal".

Nota: Revisé para ver si la configuración de tu proyecto era válida antes de eliminar la configuración del guión gráfico y no devolvió ningún error, así que ten cuidado con este problema para futuros proyectos.

+0

lo siento, creo que seguí los pasos correctamente, simplemente no entiendo el final. después de sacar al inspector de conexiones, ¿qué estoy arrastrando a mi botón? – Dreken105

+0

Usted estaría arrastrando su acción, que se enumeraría en "Acciones Recibidas" en el inspector de conexiones. Si no está allí, es posible que tenga algunos problemas de código que deberíamos analizar. – jhilgert00

+0

parece que hay. ¿Qué necesitas que te enseñe? solo el controlador.h? – Dreken105

0

Creo que deberías volver a formular tu pregunta ... Es muy confuso. Pero si entiendo lo que está diciendo, ahora tiene los archivos abiertos uno al lado del otro usando el editor asistente. El archivo Xib en el lado izquierdo, el archivo .h a la derecha. ¿correcto?

Ahora está intentando vincular el evento en el control con el método que ha definido en el archivo .h. ¿derecho?

Así que si usted está , de hecho, viendo los métodos en el archivo .h que desea enlazar, pero el editor no está dejando que enlace a ella, entonces es probable que usted tiene tener el archivo de lado- xib al lado del archivo .h incorrecto. ¿Estás seguro de que el archivo .xib y el .h que están uno al lado del otro se llaman controlador? controller.h y controller.xib?

+0

sí definitivamente los archivos correctos e interpretó la pregunta correctamente. perdón por la confusion. – Dreken105

+0

Ok, si son lo mismo, ¿qué control intentarán vincular con el método si es un botón? si es un botón, asegúrese de tener el método definido como ** - (IBAction) myMethod: (id) remitente; ** ¿Lo está haciendo? –

+0

sí: '- (IBAction) showQuestion: (id) remitente; - (IBAction) showAnswer: (id) remitente; ' – Dreken105

1

Creo que estoy leyendo el mismo libro que usted ("Programación iOS" de Big Nerd Ranch). Si es así, entonces sí, tuve el mismo problema que tú. Es cierto que estoy usando mi computadora portátil para acceder a un Mac Box para trabajar en xcode, así que pensé que no era vnc capturando el teclado correctamente, pero resulta que no era vnc, ya que podría hacer clic derecho/clic Ctrl arrastrar otras cosas.

Debo admitir que no investigué mucho sobre por qué no funcionaba, pero mientras tanto simplemente hice clic derecho en el botón, que muestra los eventos que emite el botón, y luego presioné el botón "Touch" Up Inside "evento y lo dejó caer en el controlador/propietario, que luego muestra las acciones/métodos para conectar el evento. Si miras en la página 17 (si estás leyendo el mismo libro), ese es el evento que se conectó.

Disculpe si hay errores obvios evidentes con lo que acabo de decir, acabo de comenzar a leer este libro hoy después de un gran almuerzo.

Cuestiones relacionadas