large - navigation bar ios




Plumilla cargada pero la salida de la vista no estaba configurada-Edición Swift (2)

Tengo un proyecto que está todo en Objective C, excepto mi controlador de vista, que está en Swift.

Cuando lo ejecuto me sale el error.

La aplicación se cerró 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, miré "Propietario del archivo" y veo que la vista ni siquiera se muestra como una salida.
Para mi controlador de vista anterior (objetivo c), la salida de vista se muestra.

En mi controlador de vista rápida, intenté anular la variable "vista" de UIViewController para forzar que fuera un @IBOutlet, pero se quejaba de que la variable "vista" era de tipo UIView, se quejaba de UIView y se quejaba de UIView !.

Aquí están las versiones simplificadas de

mi AppDelegate.h

#import <UIKit/UIKit.h>

@class MyViewController;
@class MyViewControllerSwift;

@interface MSAppDelegate : UIResponder <UIApplicationDelegate>
{
}

@property (strong, nonatomic) UIWindow *window;

@property (strong, nonatomic) UIViewController *viewController;

@end

AppDelegate.m

#import "MyAppDelegate.h"

#import "MyViewController.h"
#import "MySwift-Swift.h"
#import <UIKit/UIKit.h>

@implementation MyAppDelegate

static BOOL USE_SWIFT_VIEW_CONTROLLER = YES;

- (void)dealloc
{
    [_window release];
    [_viewController release];
    [super dealloc];
}

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
    // Override point for customization after application launch.

    id viewControllerPtr = nil;
    if(USE_SWIFT_VIEW_CONTROLLER)
    {
        viewControllerPtr = [MyViewControllerSwift alloc];
    }
    else
    {
        viewControllerPtr = [MyViewController alloc];
    }

    UIViewController* vController = nil;
    if(USE_SWIFT_VIEW_CONTROLLER)
    {
        vController = [[viewControllerPtr initWithNibName:@"MyViewControllerSwift" bundle:nil] autorelease];
    }
    else
    {
        vController = [[viewControllerPtr initWithNibName:@"MyViewController" bundle:nil] autorelease];
    }

    self.viewController = vController;
    self.window.rootViewController = self.viewController;
    [self.window makeKeyAndVisible];

    return YES;
}

ViewController.swift

import Foundation
import AVFoundation

@objc class MyViewControllerSwift : UIKit.UIViewController {

    var player : AVFoundation.AVAudioPlayer?;

    @IBOutlet weak var myTextView : UITextView!;

    required init(coder aDecoder : NSCoder) {
        super.init(coder:aDecoder);
    }

    override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
        super.init(nibName:nibNameOrNil, bundle:nibBundleOrNil);
    }

    override func viewDidLoad() {
        super.viewDidLoad();

        println("Using MyViewControllerSwift");
    }

    deinit {
        //TODO
    }
}

¿Qué debo hacer para que mi vista se muestre?

Gracias.

(Sí, esta es una pregunta similar a la Plena cargada pero la salida de vista no se configuró; es nueva para InterfaceBuilder pero la salida de vista no se muestra).


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.


Tuve el mismo problema, mi segunda vista en mi controlador de vista no se pudo cargar. Cambié el nombre de la vista en la propiedad (como le había dado anteriormente "Ver"). Su controlador de vista existente ya tenía referencias a la vista en la parte superior con el mismo nombre (Ver). De ahí el error. Trate de cambiar los nombres de salida. Funcionó perfecto en mi caso.





nib