Agregué un nuevo archivo nib a mi proyecto e intenté cargarlo.
Sin embargo, cuando hago clic en el icono de la barra de herramientas que se supone que me llevará a la vista que creé, recibo un NSInternalInconsistencyException
mensaje con el mensaje:
Finalización de la aplicación debido a la excepción no detectada 'NSInternalInconsistencyException', razón: '- [UIViewController _loadViewFromNibNamed: bundle:] cargó la plumilla "..." pero el punto de vista no estaba configurado.
Así que abrí mi archivo nib y veo por la vista que no hay salidas de referencia establecidas. Sin embargo, trato de hacer clic y arrastrar el círculo para "nueva salida de referencia" al Propietario del archivo, pero no me deja ... ¿qué debo hacer para que se muestre mi vista?
Respuestas:
Ustedes tienen razón, pero como soy un recién llegado, me tomó un tiempo descubrir todos los pasos para hacerlo. Esto es lo que funcionó para mí:
fuente
MyViewController
es una subclase de subclase deUIViewController
y no existeview
en "Outlets". Si subclasesMyViewController
directamente desdeUIViewController
la vista aparece en "Outlets". Magia o error de Xcode.Esta es la propuesta de Josh Justice, pero de manera gráfica (las imágenes son mías):
Finalmente, el controlador de vista se instancia con el código variable:
fuente
En general, puedo solucionarlo rehaciendo la conexión entre el Propietario del archivo y la vista. Control-arrastre desde el propietario del Archivo a su Vista (en IB) y seleccione la vista desde el menú emergente.
fuente
La identidad de vista - Identidad de clase no se estableció. Después de establecerlo en la clase adecuada, el problema se resolvió.
fuente
¿Está seguro de que tiene una UIView (o subclase) asignada a la propiedad "view" de yourViewController?
Haga clic derecho en "Propietario de archivo" en el panel izquierdo de la xib para su ViewController y verifique que la salida de "vista" esté configurada. Si no, ¡configúralo en una vista!
Esto definitivamente solucionará el problema
fuente
Para mí, todas las cosas indicadas aquí https://stackoverflow.com/a/6395750/939501 eran ciertas pero aún así arrojaba un error, porque creé una clase View con el nombre ABCView y luego la eliminé luego 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 resolvió mi problema.
Gracias
fuente
Tuve el mismo problema con XCode 4.6.3. Comencé con un par de archivos con el nombre
MySettingsView.h
y los.m
eliminé a favorMySettingsViewController.h
, pero a pesar de probar la mayoría de las sugerencias mencionadas aquí, seguía fallando,Evidentemente, todavía estaba "confundido" al intentar cargar MySettingsView.xib en lugar de MySettingsView Controller .xib. Quizás su lógica de "haz lo que quiero decir" es demasiado elegante.
Así que solucioné el problema codificando el nombre de NIB / XIB en MySettingsViewController.m:
fuente
Para cualquiera que esté utilizando un método xib para crear una UIView y tenga este problema, notará que no tendrá la salida "ver" en el menú del inspector de conexiones. Pero si configura la clase personalizada Propietarios del archivo en un UIViewController y verá la salida "ver", que simplemente puede conectar CMND a la salida CustomView.
fuente
Mi problema con esto fue causado por tener una punta duplicada en la carpeta de la clase que no tenía la vista establecida. xcode parecía estar eligiendo una punta para una compilación y luego la otra la próxima vez que construí el proyecto. Acabo de eliminar el otro. Se ve bien. Doh!
fuente
Acabo de pasar más de una hora tratando de descubrir por qué mi propiedad de vista no está configurada en mi controlador de vista al iniciarla desde nib. Recuerde llamar "[super initWithNibName ...]" dentro del initWithNibName de su controlador de vista.
fuente
Acabo de arreglar esto en el mío. Gran proyecto, dos archivos. Uno era "ReallyLargeNameView" y otro era "ReallyLargeNameViewController"
Basado en la segunda respuesta elegida anteriormente, decidí que debería limpiar mi compilación. Nada, pero todavía era sospechoso de XCode (ya que tengo dos clases idénticas, debería abstraerlas pero eh ...) Entonces uno está trabajando, uno no. Los nombres de los propietarios de los archivos son copiados y pegados, salidas conectadas, xCode reiniciado, todavía nada.
Así que elimino la clase con nombre similar (que es una vista). Pronto, el nuevo error "salida interior no conectada" literalmente era "webView no valor clave" bla ... básicamente diciendo "Visual Studio es mejor". De todos modos ... borro el archivo con el nombre más pequeño, y bam, funciona.
XCode está 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 momento. Confundido 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.
Recuerde siempre limpiar sus compilaciones (eliminando también el simulador)
fuente
¡También tuve el mismo problema y mi problema fue que agregué otra localización (inglés) a la plumilla ViewControllers para que mi aplicación con el alemán de localización no pudiera encontrar la plumilla con el inglés de localización !! Espero que esto ayude a alguien!
fuente
fuente
Para mí, el problema fue causado por llamar
initWithNibName:bundle:
. Estoy usando celdas de vista de tabla de un archivo plumín para definir formularios de entrada en los que se sientantableViews
. Como no tengo una vista, no tiene sentido enganchar a una. En cambio, si llamo alinitWithStyle:
método en su lugar, y desde allí, cargo el archivo nib, entonces las cosas funcionan como se esperaba.fuente
Las respuestas anteriores casi resolvieron el problema para mí, pero faltaba el último paso.
Ahora se adjuntará cualquier @IBOutlets que agregue.
Saludos, Richard
fuente
Tuve el mismo problema, pero se solicitó 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 del Creador de interfaces, y luego aparecieron opciones que aislaron las características del Propietario del archivo, el Primer respondedor y la Vista. Al hacer clic en el primero (un cuadro transparente grande), me permitió establecer su clase personalizada como se sugirió anteriormente.
fuente
Tuve el mismo problema, pero se requirió una solución diferente. El problema en este caso era que la clase del Propietario del archivo no estaba conectada al archivo xib.
fuente
Me encontré con algo muy similar esta noche, con una subclase Swift UIViewController. En este caso, ninguna de las soluciones anteriores funcionó, pero reordenar un poco mi código sí. Net-net, tener una extensión a la subclase ocurre antes de que la definición de la subclase en el mismo archivo parezca confundir XCode, a pesar de compilar bien; la solución fue colocar las extensiones después de la definición de la subclase.
He publicado los detalles en una respuesta a esta pregunta similar .
fuente
En mi caso, el inicializador designado
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
se implementó en la clase *** ViewController, por lo que incluso cuando llamo a otro inicializador para inicializar el objeto, se llamará al inicializador designado.Entonces, para resolver este problema, verificar si
- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
también es una forma adecuada.fuente
Me encontré con este problema de una manera ligeramente diferente de las otras respuestas aquí.
Si simplemente creé un nuevo archivo xib, le agregué un UIViewController en Interface Builder y configuré esa clase personalizada de UIViewController en mi controlador de vista, lo que resultó en el bloqueo "no se configuró la salida de vista". Las otras soluciones aquí dicen controlar y arrastrar la salida de la vista a la Vista, pero para mí la salida de la vista estaba en gris y no pude controlarla.
Descubrí que mi error fue agregar un UIViewController en Interface Builder. En cambio, tuve que agregar una UIView y establecer la Clase personalizada del propietario del archivo en mi controlador de vista. Entonces podría controlar y arrastrar la salida de vista del Propietario del archivo a mi nueva vista UIView y todo funcionó como debería.
fuente
Solo tuve el mismo error en mi proyecto, pero una razón diferente. En mi caso, tenía una configuración de IBOutlet con el nombre "Ver" en mi clase personalizada UITableViewController. Sabía que "ver" era especial porque es un miembro de la clase base, pero no pensé que Ver (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 es una de esas áreas. Así que lo renombré a DefaultView y todo está bien ahora.
fuente
seleccione el propietario de los archivos y vaya a abrir el inspector de identidad e indique el nombre de la clase a la que corresponde Si ninguno de los métodos anteriores funciona y aún no puede ver la salida de la vista, entonces proporcione una nueva conexión de salida de referencia al propietario del archivo, entonces podrá ver la salida de la vista. Haga clic en la vista Salida para establecer una conexión entre la Vista Salida y el propietario del archivo. Ejecute la aplicación, esto funciona bien.
fuente
En mi caso, la vista no se vio en xib. en xib, la vista era size = none (cuarta pestaña a la derecha). Establezco el tamaño en Forma libre y vuelvo a cargar xCode. view fue apelado y configuré el enlace apropiado para View.
fuente
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. Después de crear esto, 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.
fuente
para mí sucedió, cuando
La vista UIV de este ViewController debe cargarse en la otra vista como una subvista,
llamaremos algo como esto
Dónde
Aquí faltaba loadView ,,, agregar esta línea resolvió mi problema.
fuente
Tuve el mismo problema, lo descubrí y es porque había marcado " Celdas estáticas " en las propiedades de Vista de tabla en la opción Contenido . Funcionó cuando cambió a "
Dynamic Prototypes
". La captura de pantalla está abajo.fuente
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 me lo arregló.
fuente
Abra su archivo de guión gráfico donde existe su viewController, o un archivo relacionado con XIB con textEdit.app y verifique si el guión gráfico o el nombre XIB es el mismo de su viewController, luego cámbielo, guarde y vuelva a cargar / reiniciar Xcode.
fuente
Si está utilizando un método de inicio personalizado, verifique que está devolviendo algo válido. Me encontré con un código que se estrelló en algo como esto:
En otra clase, el controlador se creó así:
El problema es que en el método init, self no ha cambiado y debería verse así:
fuente
Me gustaría apoyar a Stephen J. Algunas veces X Code se confunde. Acabo de tener una experiencia en la que jugué mucho con la interfaz de usuario y agregué y eliminé puntos de venta varias veces. Los enchufes simplemente ya no se conectarían. Nunca descubrí una razón específica (había probado todas las soluciones anteriores), y solo tuve que eliminar la NIB y volver a crearla desde cero, y de hecho tuve que usar un nombre diferente para la NIB antes de que funcionara. (XCode 4.6.1) Perdió un par de horas en eso.
fuente