ios xib - Plumilla cargada, pero la salida de "vista" no se estableció




xcode main (23)

Agregué un nuevo archivo de plumilla a mi proyecto e intenté cargarlo.

Sin embargo, cuando hago clic en el ícono de la barra de herramientas que se supone que me llevará a la vista que creé, obtengo una NSInternalInconsistencyException con el mensaje:

La aplicación finalizó debido a la excepción no detectada 'NSInternalInconsistencyException', razón: '- [UIViewController _loadViewFromNibNamed: bundle:] cargó la punta "..." pero la salida de la vista no estaba establecida.'

Así que abrí mi archivo de plumilla, y veo que no hay ningún conjunto de puntos de venta de referencia. Sin embargo, trato de hacer clic y arrastrar el círculo de "nueva salida de referencia" al propietario del archivo, pero no me permite ... ¿qué debo hacer para que se muestre mi vista?


Answers

Tuve un problema similar con Xcode 9.3 y la configuración de "Módulo" en el inspector de atributos "Propietario del archivo" en el módulo del proyecto lo solucionó.


Me encontré con algo muy similar esta noche, con una subclase Swift UIViewController. En este caso, ninguno de los arreglos anteriores funcionó, pero reordenar un poco mi código funcionó. Net-net, que tiene una extensión a la subclase, se produce antes de que la definición de la subclase en el mismo archivo parezca confundir a XCode, a pesar de compilar bien; la solución era colocar las extensiones después de la definición de la subclase.

He publicado los detalles en una respuesta a esta pregunta similar .


También tuve el mismo problema y mi problema fue que agregué otra localización (inglés) a la punta de ViewControllers, por lo que mi aplicación con el alemán de localización no pudo encontrar la punta con el inglés de localización. Espero que esto ayude a nadie!


Me gustaría secundar a Stephen J. Algunas veces el Código X se confunde. Acabo de tener una experiencia en la que he jugado mucho con la interfaz de usuario y he agregado y eliminado puntos de venta varias veces. Los puntos de venta simplemente no se conectan más. Nunca resolví una razón específica (probé todas las soluciones anteriores), y simplemente tuve que eliminar el NIB y volver a crearlo desde cero, y de hecho tuve que usar un nombre diferente para el NIB antes de que funcionara. (XCode 4.6.1) Perdí un par de horas en eso.


Ustedes tienen razón, pero como soy un recién llegado, me tomó un poco de tiempo descubrir todos los pasos para hacerlo. Esto es lo que funcionó para mí:

  • Abre el archivo XIB causando problemas
  • Haga clic en el ícono del propietario del archivo en la barra izquierda (la de arriba, parece un cuadro con contorno amarillo)
  • Si no ve la barra lateral derecha, haga clic en el tercer icono sobre "ver" en su barra de herramientas. Esto mostrará la barra lateral derecha
  • En la barra lateral derecha, haga clic en la tercera pestaña, la que se parece un poco a un periódico.
  • Debajo de "Clase personalizada" en la parte superior, asegúrese de que Clase sea el nombre del ViewController que debe corresponder a esta vista. Si no, ingrésalo

  • En la barra lateral de la derecha, haz clic en la última pestaña, la que parece un círculo con una flecha en ella.
  • Debería ver "puntos de venta" con "vista" debajo de él. Arrastre el círculo junto a él sobre el ícono "ver" en la barra izquierda (el de abajo, parece un cuadrado blanco con un contorno gris grueso)

  • Guarde el xib y vuelva a ejecutar

Solo pasé más de una hora intentando averiguar por qué mi propiedad de vista no está configurada en mi controlador de vista al iniciarla desde la punta. Recuerde llamar "[super initWithNibName ...]" dentro de initWithNibName del controlador de vista.


Me encontré con el mismo problema mientras eliminaba accidentalmente la referencia xib y la volvía a agregar. Simplemente lo solucioné al establecer una conexión entre el propietario de los archivos y la vista. También asegúrese de que la clase personalizada de FilesOwner sea su viewController esperado.


Para cualquier persona que esté utilizando un método xib para crear una UIView y tener este problema, notará que no tendrá la salida "vista" en el menú del inspector de conexiones. Pero si configura la clase personalizada de Propietarios del archivo en un UIViewController y luego verá la salida de "vista", que puede simplemente conectar mediante CMND una salida a CustomView.


La respuesta al problema para mí fue asegurarse de que el nombre de archivo xib y el nombre de archivo swift no deberían ser iguales. Al crear un objeto de clase, daba prioridad al archivo xib y, en ese caso, la carga de XIB no XIB encontrar la salida de View.

Ejemplo: estaba teniendo DataFragement.xib y DataFragment.swift

y yo estaba tratando de crear objetos como

dejar fragmento = DataFragment ()

Para resolver este problema, cambié el nombre de mi archivo data_fragment.xib a data_fragment.xib y data_fragment.xib con data_fragment.xib mis encantos.


seleccione el propietario de los archivos y abra el inspector de identidad para dar el nombre de la clase a la que corresponde. Si ninguno de los métodos anteriores funciona y aún no puede ver el punto de vista, entonces proporcione una nueva Conexión de referencia al propietario del archivo y podrá ver el punto de vista. Haga clic en el Outlet de vista para establecer una conexión entre View Outlet y el propietario del archivo. Ejecute la aplicación esto funciona bien.


Para mí, todas las cosas indicadas aquí https://.com/a/6395750/939501 eran ciertas, pero aún así fue un error de lanzamiento, la razón fue que creé una clase de Vista con el nombre ABCView y luego la eliminé. Agregué un controlador de vista como ABCViewController así que de alguna manera se refería al antiguo ABCView en el nuevo controlador de vista, tuve que eliminar el ABCViewController y agregar uno nuevo con un nombre diferente que resolviera mi problema.

Gracias


Tuve el mismo problema, pero se pidió una solución diferente. El problema en este caso fue que la clase del propietario del archivo no estaba conectada al archivo xib.


En mi caso, la vista no fue vista en xib. en xib, la Vista era tamaño = ninguno (cuarta pestaña a la derecha). Puse el tamaño a Freeform y recargo xCode. Se apeló la vista y puse el enlace apropiado en Ver.


Por lo general, puedo solucionarlo rehaciendo la conexión entre el propietario del archivo y la vista. Presione la tecla Control y arrastre desde el propietario del archivo a su vista (en IB) y seleccione la vista en el menú emergente.


Tenía el mismo problema, pero se necesitaba una solución ligeramente diferente. El problema en este caso era la clase del propietario del archivo, en lugar de la clase de la vista. Para configurar esto, tuve que hacer clic en el icono de "reproducción hacia atrás" en la esquina inferior izquierda de la ventana de Interface Builder, y luego aparecieron opciones que aislaban las características del propietario del archivo, el primer respondedor y la vista. Al hacer clic en el primero (una caja grande y transparente), me permitió configurar su clase personalizada como se sugirió anteriormente.


Acabo de arreglar esto en la mía. Proyecto grande, dos archivos. Uno fue "ReallyLargeNameViewView" y otro fue "ReallyLargeNameViewController"

Basándome en la segunda respuesta elegida anteriormente, decidí que debía limpiar mi compilación. Nada, pero aún era sospechoso de XCode (ya que tengo dos clases idénticas, debería abstraerlas pero eh ...) Así que uno está trabajando, uno no. Los nombres de los propietarios de los archivos están tan lejos como copiados y pegados, salidas recocidas, xCode reiniciado, aún nada.

Así que borro la clase con nombre similar (que es una vista). Pronto, el nuevo error "outlet inside no hooked up" literalmente fue "webView no valor clave" bla ... básicamente diciendo "Visual Studio es mejor". De todos modos ... borro el archivo más pequeño, y bam, funciona.

XCode es confundido por archivos con nombres similares. Y el proyecto es lo suficientemente grande como para necesitar reiniciar un poco, eso puede ser parte de él.

Ojalá tuviera una respuesta más técnica que "XCode está confundido", pero bueno, xCode se confunde mucho en este punto. Desconcertado de la misma manera que ayudaría a un niño pequeño. Funciona ahora, :) debería beneficiar a otros si lo anterior no soluciona nada.

Recuerda siempre limpiar tus compilaciones (eliminando también el simulador)


Mi problema con esto fue causado por tener una punta duplicada en la carpeta de la clase que no tenía el conjunto de vistas. Xcode parecía estar eligiendo una punta para una compilación y luego la otra la próxima vez que construyera el proyecto. Acaba de borrar el otro. Se ve bien. Doh!


Si ha intentado todo y aún recibe este error, intente volver a crear el archivo de clase desde cero, pero recuerde seleccionar la casilla de verificación "Crear también archivo XIB". Esto vinculará automáticamente algunos elementos que no están vinculados al crear estos archivos por separado. Una vez creado, es probable que pueda cortar y pegar todo en el nuevo XIB y debería funcionar bien.

Estoy encontrando este problema específicamente con la creación de archivos por separado en Swift.


Solo tuve el mismo error en mi proyecto, pero diferente razón. En mi caso, tuve una configuración de IBOutlet con el nombre "Ver" en mi clase personalizada UITableViewController. Sabía que "vista" era especial porque era un miembro de la clase base, pero no pensé que Vista (caso diferente) también sería un problema. Supongo que algunas áreas de Cocoa no distinguen entre mayúsculas y minúsculas, y probablemente cargar una xib sea una de esas áreas. Así que acabo de renombrarlo a DefaultView y todo está bien ahora.


Esta es la propuesta de Josh Justice, pero de una manera gráfica (las fotos son mías):

  1. Seleccione el propietario del archivo
  2. En el panel lateral derecho, seleccione la clase personalizada.
  3. Ingrese el nombre de la clase personalizada

  1. En el panel del lado derecho, seleccione oultets.
  2. Arrastre la salida de la vista para ver el componente

Finalmente, el controlador de vista se crea una instancia con el código de balanceo:

        PTFilterUserVC *aFilterUserVC = [[PTFilterUserVC alloc] initWithNibName:@"FilterVC" bundle:nil];

        //OPTIONAL.This is how 'I' am interested in present the view controller.
        [self.navigationController pushViewController:aFilterUserVC animated:YES];

Tuve el mismo problema, me di cuenta y es porque había marcado " Celdas estáticas " en las propiedades de la Vista de tabla en la opción Contenido . Funcionó cuando cambió a " Dynamic Prototypes ". La captura de pantalla está abajo.


En mi caso, el inicializador designado - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil en la clase *** ViewController se implementó, incluso cuando llame a otro inicializador para inicializar el objeto, el inicializador designado ser llamado .

Entonces, para resolver este problema, - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil si - (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil también es una forma adecuada.


Mantenga presionado el comando y haga clic en el método que desee para ver su implementación.





ios cocoa-touch interface-builder xib