EXC_BAD_ACCESS 在使用 UIWebView 执行转至 ViewController 时?

EXC_BAD_ACCESS when performing a segue to ViewController with a UIWebView?

所以我有这样的设置:

我有一个自定义代码 reader 视图控制器,只要它检测到条形码,我就希望它转到另一个带有标签和 UIWebView 的视图控制器。到目前为止,它仅与显示的标签完美配合。出于某种原因,我所做的只是添加一个 UIWebView 并在我的第二个视图控制器自定义 class 中添加一个 IBOutlet 并且由于 exc_bad_access 错误,segue 将无法工作.该错误突出显示了我的代码 reader 视图控制器中的以下行:

self.performSegueWithIdentifier("push", sender: self) //my segue is named push

这是我的第二个视图控制器代码:

import UIKit

public class SecondViewController: UIViewController {
    var setText:String!
    @IBOutlet weak var WebV: UIWebView!


    @IBOutlet var label: UILabel!
    override public func viewDidLoad() {
        label.text = setText
    }

}

解决方案: 所以我刚刚意识到,出于某种原因,我的 segue 运行 脱离了主线程。这会发生在闭包中吗?而且,这是否意味着您不能在 closure/block 中执行 segue?

非常感谢任何帮助。非常感谢。

根据您的代码假设,

您没有将字符串从 CodeReaderViewController 传递到 SecondViewController 的代码。

这是我做的(实际上是我做的条形码 reader):

class CodeReaderViewController : UIViewController {
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject!) {
        if segue.identifier == "push" {
            let subVC: SecondViewController = segue.destinationViewController as SecondViewController
            subVC.setText = <ANY TEXT WHICH YOU'D LIKE TO PASS TO SECONDVIEWCONTROLLER>
        }
    }
}

如果它不起作用,请告诉我,因为这是在 Swift 出来之后写的。

所以我才意识到,出于某种原因,我的 segue 没有 运行 在主线程上。调度到主队列解决了这个问题。

如果您已经在主线程中调用了 prepareForSegue 但仍然无法访问,请仔细检查您是否在情节提要中使用了正确的视图控制器 class。