for - xib ios




Plumilla cargada, pero la salida de "vista" no se estableció (18)

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


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.


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 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.


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 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


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.


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, 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.


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.


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.







xib