ios - 无法在 bundle 中加载 Nib - 错误的 nibname

标签 ios swift viewcontroller nib

我正在尝试推送一个用 xib 文件初始化的 ViewController View 。为此,我调用了我的 Controller 的初始化程序,该 Controller 自称为 initwithnibname:bundle: 以加载正确的 xib 文件。问题是我收到以下错误

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: [...] with name 'BYZ-38-t0r-view-x4c-fw-L1g'

错误中的 nib 名称与初始化程序调用中提供的 nib 名称不匹配。

这是我的代码:

ViewController声明/初始化

    let connexionViewController = ConnexionViewController()

    self.view.addSubview(connexionViewController.view) // Exception thrown on this line

View Controller 代码

import Foundation
import UIKit

class ConnexionViewController: UIViewController {

    @IBOutlet var validateButton: UIButton!
    @IBOutlet var usernameTextField: UITextField!

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

    override init() {
        super.init(nibName: "ConnexionViewController", bundle: nil)
    }

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

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

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

xib 文件的名称与提供给初始化器的字符串相匹配,xib 被添加到实际目标的构建阶段。

最佳答案

ViewController * pvc = [[ViewController alloc]initWithNibName:NSStringFromClass([ViewController class]) bundle:nil];

我以这种方式加载 Nib 以避免出现字符串。 这反过来又开始将 nib 名称返回为 myproject.ViewController,以快速兼容现有的 objC 项目以进行混合和匹配。

要对此进行排序,请使用以下类型的代码或进行字符串处理以裁剪字符串直到

ViewController * pvc = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];

希望这对以后的人有帮助。

关于ios - 无法在 bundle 中加载 Nib - 错误的 nibname,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25252649/

相关文章:

ios - Moya - 无法使用身份验证凭据调用 api

ios - 在 Xcode 中使用枚举编译 swift 文件时出现段错误 11

Swift 3.0 二元运算符 '==' 无法应用

ios - 将 ViewController 设置为彼此重叠且不透明。

ios - 在 iPhone 上调用号码

ios - 从 url 获取 alasset 对象数组

ios - 在不重新加载数据的情况下更改 UICollectionView 中的标签值?

ios - 使用 Swift 连接 SSH

swift - 使用 Swift2 从 AppDelegate 重新打开 iOS 应用程序到指定的导航 Controller

ios - 不使用自动布局时,PrepareForSege崩溃