ios - for - Plumilla cargada, pero la salida de "vista" no se estableció
xcode ios 12 (27)
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.
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?
¿Está seguro de que tiene una UIView (o subclase) asignada a la propiedad "view" de suViewController?
Haga clic con el botón derecho en "Propietario del archivo" en el panel izquierdo de xib para su ViewController y verifique que la salida de "vista" esté establecida. Si no, ponlo a la vista!
esto definitivamente solucionará el problema
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)
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.
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.
Esta es la propuesta de Josh Justice, pero de una manera gráfica (las fotos son mías):
- Seleccione el propietario del archivo
- En el panel lateral derecho, seleccione la clase personalizada.
- Ingrese el nombre de la clase personalizada
- En el panel del lado derecho, seleccione oultets.
- 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];
La identidad de vista - Identidad de clase no se estableció. Después de configurarlo en la clase apropiada, el problema se resolvió.
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
yDataFragment.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.
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 .
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.
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!
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.
Para mí, el problema se debió al llamar a initWithNibName:bundle:
Estoy utilizando celdas de vista de tabla de un archivo de plumilla para definir formularios de entrada que se sientan en tableViews
. Como no tengo una vista, no tiene sentido engancharse a una. En cambio, si llamo el método initWithStyle:
lugar, y desde allí, cargo el archivo nib, entonces las cosas funcionan como se espera.
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
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.
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 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.
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.
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!
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.
Tuve el mismo problema con XCode 4.6.3. Comencé con un par de archivos llamados MySettingsView.h
y .m
pero los MySettingsViewController.h
en favor de MySettingsViewController.h
, pero a pesar de haber intentado la mayoría de las sugerencias mencionadas aquí, aún se mantenía el error.
2013-07-05 11: 48: 17.205 MyApp [39024: c07] *** Finalización de la aplicación debido a la excepción no detectada ''NSInternalInconsistencyException'', razón: ''- [UIViewController _loadViewFromNibNamed: bundle:] cargó el "MySettingsView" nib pero el visor no fue establecido.
Evidentemente, todavía estaba "confundido", intentando cargar MySettingsView.xib en lugar de MySettingsView Controller .xib. Tal vez su lógica de "haz lo que quiero decir" es demasiado sofisticada.
Así que resolví el problema codificando el nombre NIB / XIB en MySettingsViewController.m:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:@"MySettingsViewController" bundle:nibBundleOrNil];
}
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.
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ó.
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
para mi sucedió, cuando
- Tengo una clase ViewController (.mm / h) asociada con el archivo Nib,
La vista de este ViewController se debe cargar en la otra vista como una subvista,
llamaremos algo como esto
-(void)initCheckView{ CheckView *pCheckViewCtrl = [CheckView instance]; pCheckView = [pCheckViewCtrl view]; [[self view]addSubview:pCheckView]; [pCheckViewCtrl performCheck]; }
Dónde
+(CheckView *)instance{
static CheckView *pCheckView = nil;
static dispatch_once_t checkToken;
dispatch_once(&checkToken, ^{
pCheckView = [[CheckView alloc]initWithNibName:@"CheckView" bundle:nil];
if ( pCheckView){
[pCheckView initLocal];
**[pCheckView loadView];**
}
});
return pCheckView;
}
Aquí faltaba loadView, agregar esta línea resolvió mi problema.
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.