过渡到另一个视图控制器时,应用程序崩溃而没有崩溃信息

时间:2019-03-27 13:10:03

标签: swift exception crash storyboard swift4

我有两个视图控制器LoginViewControllerTermsAndPrivacyViewController

在第一个视图控制器上,有一个带有IBAction的按钮,它将打开TermsAndPrivacyViewController。在TermsAndPrivacyViewController上,我具有Web视图,该视图加载从LoginViewController传递的URL。因此,这是代码(登录视图控制器):

 @IBAction func tosAction(_ sender: Any) {

        if let vc = UIStoryboard(name: "Login", bundle: nil).instantiateViewController(withIdentifier: kTOSViewControllerIdentifier) as? TermsAndPrivacyViewController{

            vc.url =  URL(string: kTOSUrl)
            self.navigationController?.pushViewController(vc, animated: true)

        }
    }

在TermsAndPrivacyViewController上,我有这个:

override func viewDidLoad() {
        super.viewDidLoad()

        webView.navigationDelegate = self
        if let `url` = url {
            webView.load(URLRequest(url: url))
            webView.allowsBackForwardNavigationGestures = true
        }
    }

因此,当我按下按钮时,应用程序崩溃了SIGABRT消息,没有其他事件。另外,我没有关于Firebase Crashlytics的任何崩溃报告(我首先从调试器分离了一个应用程序,并导致崩溃)。

现在,最奇怪的部分是:/ ...如果我在tosAction()方法的第一行上放置一个断点,然后逐步进行(或继续进行下去),则一切正常。没有崩溃???

我在这里缺少明显的东西吗?崩溃的原因是什么?另外,我尝试放入Exception Breakpoint,但没有任何变化。我只有这个:

enter image description here

enter image description here

和控制台:

console image

所以,一点儿也没有崩溃的信息。

编辑

好吧,现在更奇怪的部分:)我只是在其他手机上尝试过应用。

应用程序在iPhone 6s +,iOS 12.1(16B5059d)上崩溃,但在iPhone 6,iOS 12.0(16A366)上正常运行

3 个答案:

答案 0 :(得分:1)

也许您使用的是那些设备不支持的库或框架。 您必须看到错误

您尝试过吗?

应用程序崩溃时,在控制台中按cmd + F并搜索例外。 现在您可以看到错误

希望对您有所帮助。

答案 1 :(得分:0)

也许您可以在LoginViewController中使用segue方法。

 @IBAction func tosAction(_ sender: Any) {
        performSegue(withIdentifier: "GoToWeb", sender: nil)
    }
}

并致电prepareForSegue

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if (segue.identifier == "GoToWeb") {
            let vc = segue.destination as! TermsAndPrivacyViewController
            vc.url = "YOUR_URL"
        }

TermsAndPrivacyViewController内部的代码不变

编辑:

也许您的UIButton没有很好地绑定,如果您的按钮仅被调用一次,您是否可以在右侧面板的“显示连接检查器”部分中进行验证。

答案 2 :(得分:0)

要获取有关此类崩溃的更多信息,请打开Breakpoints菜单(或按CMD + 8),单击左下角的加号图标,然后按 Exception Breakpoint ... 。右键单击,然后编辑。添加 Debugger Command 类型的操作,然后输入以下内容:

enter image description here

再次重现崩溃,这次控制台将输出更有用的错误消息。