【问题标题】:Swift EXC_BREAKPOINT when assigning viewcontroller to variable in prepareForSegue将视图控制器分配给 prepareForSegue 中的变量时的 Swift EXC_BREAKPOINT
【发布时间】:2014-07-03 12:58:25
【问题描述】:

尝试使用我的destinationViewController 执行变量分配时出现错误。

错误信息是这样的: 线程 1:EXC_BREAKPOINT(代码=EXC_I386_BPT,子代码=0x0)

这在我的 prepareForSegue 函数中。

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
    if segue.identifier == "LoginSegue"{

        let vc = segue.destinationViewController as LoggedInViewController
        vc.email = emailTextfield.text

    }
}

在另一个文件中是这样的。

var email: String?

位于顶部。 那么这个:

override func viewDidLoad() {
    super.viewDidLoad()

    println("Email is:")
    println(email)
    println("Email was")
}

但我从来没有进入第二个文件。

标记为错误的是 let vc = segue.destinationViewController as LoggedInViewController 这一行。

两个 swift 文件都连接到导航控制器。

我不知道你还需要什么,但我当然会发布你需要理解的所有代码!

谢谢!

【问题讨论】:

    标签: ios swift


    【解决方案1】:

    在您的情况下,目标控制器是导航控制器而不是您的 LoggedInViewController ,所以 segue.destinationViewController as LoggedInViewController 是一个错误,因此它正在崩溃。

    这样试试

    override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!) {
        if segue.identifier == "LoginSegue"{
                let navigationController = segue.destinationViewController as UINavigationController
    
            let vc = navigationController.topViewController as LoggedInViewController
            vc.email = emailTextfield.text
    
        }
    }
    

    【讨论】:

    • 该死的! :D 不能投票,只有 1 个代表! :( 但感谢您花时间帮助我 :)
    • 是的,注意到了!我现在有!
    • 我刚刚遇到了一个类似的错误,我实际上使用了相同的错误,但我使用了navigationController.viewControllers[0] 而不是navigationController.viewControllers[0]。有区别吗?
    • @OliverBorchert 你是对的。您应该使用 topViewController 来获取导航堆栈上的当前视图控制器。 viewControllers[0] 给出底部视图控制器。我刚刚编辑了我的答案,感谢您的关注。
    【解决方案2】:

    如果有人因为这是 EXC_BREAKPOINT 上的第一次点击而来到这里:

    对我来说,这个非常明显的异常是因为 fatal error: unexpectedly found nil while unwrapping an Optional value 而引发的,因为在初始化之前使用了 IBOutlet。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-11
      • 1970-01-01
      • 2017-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多