繁体   English   中英

无法实例化视图控制器,Swift,iOS

[英]can not instantiate a view controller, swift, ios

我正在尝试从nib文件实例化视图控制器,如下所示:

class TNAChallengerHandler:ChallengeHandler {

    var controller : ViewController

    // Default initializer
    init(realm iRealm: String, controller iController : ViewController) {
        println("Default initializers")
        self.controller = iController;
        super.init(realm: iRealm)
    }

    // Convience initializer
    convenience init() {
        println("Convience initializers")
        let vc = ViewController(nibName: "ViewController", bundle: nil)

        self.init(realm: "SingleStepAuthRealm", controller:vc)
    }

执行代码,我越来越

iOS_SingleBasedAdapterAuthentication[40828:5708548] *** Terminating app due to uncaught
exception 'NSInternalInconsistencyException', reason: 'Could not load NIB in bundle: 'NSBundle </Users/tonytran/Library/Developer/CoreSimulator/Devices/6B797313-635F-4ABD-B3C6-A1D9DF3F1E85/
data/Containers/Bundle/Application/FDC3FD2B-6E26-4654-AC0F-ED3F44DDC5F6/iOS_SingleBasedAdapterAuthentication.app> (loaded)' with name 'ViewController''

我在情节提要中仔细检查,该类的自定义类已经更改为如下所示的ViewController ,并且名称与ViewController.swift相同

在此处输入图片说明

关于此的任何想法。 欢迎在这里发表所有评论。

您没有一个名为ViewController的笔尖文件。

你有一个故事板。 情节提要被编译为一组nib文件,但是您不能直接访问这些nib文件。 相反,您需要为视图控制器提供一个Storyboard ID。 然后,您可以要求情节提要实例化该视图控制器。

假设您使用“ GetData”作为情节提要ID:

故事板ID

我假设您的故事板名为Main.storyboard 然后,您可以像这样实例化视图控制器:

convenience init() {
    println("Convenience initializers")
    let storyboard = UIStoryboard(name: "Main", bundle: nil)
    let vc = storyboard.instantiateViewControllerWithIdentifier("GetData")
    self.init(realm: "SingleStepAuthRealm", controller: vc)
}

就是说,当该视图控制器还用作UINavigationController的根视图控制器时,我不确定通过名称实例化该视图控制器是否有意义。 您确定要在此处实例化新的视图控制器吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM