我有两个视图控制器LoginViewController
和TermsAndPrivacyViewController
。
在第一个视图控制器上,有一个带有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
,但没有任何变化。我只有这个:
和控制台:
所以,一点儿也没有崩溃的信息。
编辑
好吧,现在更奇怪的部分:)我只是在其他手机上尝试过应用。
应用程序在iPhone 6s +,iOS 12.1(16B5059d)上崩溃,但在iPhone 6,iOS 12.0(16A366)上正常运行
答案 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)