【问题标题】:can not instantiate a view controller, swift, ios无法实例化视图控制器,swift,ios
【发布时间】:2014-09-19 19:15:36
【问题描述】:

我正在尝试从 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相同

对此有任何想法。这里欢迎所有的cmets。

【问题讨论】:

  • 不清楚您要做什么。 ViewController 将在您的情节提要时自动实例化,因为它是导航控制器的根视图控制器。您不应该将 initWithNibName:bundle 与情节提要一起使用。

标签: ios uiviewcontroller swift


【解决方案1】:

您没有名为 ViewController 的 nib 文件。

你有一个故事板。故事板被编译成一组 nib 文件,但您不能直接访问这些 nib 文件。相反,你需要给你的视图控制器一个 Storyboard ID。然后你可以让故事板实例化那个视图控制器。

假设您使用“GetData”作为 Storyboard 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 的根视图控制器时,我不确定按名称实例化视图控制器是否有意义。您确定要在此处实例化一个新的视图控制器吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    • 2017-07-24
    • 2015-03-24
    • 1970-01-01
    • 2019-05-11
    相关资源
    最近更新 更多