在swift5中关闭页面时如何传递参数?

问题描述 投票:0回答:2

我目前正在开发Swift5。我有个问题。当前有一个WebView启动和一个自定义通知窗口,用于检查数据。检查数据后,我将关闭通知窗口。

当我在此处关闭通知窗口时,如何将数据转发到WebView页面?我认为这不是刷新WebView页面的好方法。还有其他方法吗?

WebView.swift打开模式自定义提醒

      let storyboard = UIStoryboard(name: "Main", bundle: nil)
        let myAlert = storyboard.instantiateViewController(withIdentifier: "CheckAlertController") as! CheckAlertController
        myAlert.modalPresentationStyle = .overCurrentContext
        myAlert.modalTransitionStyle = .crossDissolve
        self.present(myAlert, animated: false, completion: nil)

Modal Custom Alert.swift

    @IBAction func okButton(_ sender: Any) {
        self.dismiss(animated: true, completion: nil)
    }

我想在我按下OK按钮并关闭模式通知窗口时传递数据。

我该如何解决问题?

还有其他方法吗?什么是正确的方法?

ios swift parameter-passing
2个回答
0
投票

模式自定义Alert.swift

var callBack: (()->())?

@IBAction func okButton(_ sender: Any) {
    callBack?()
    self.dismiss(animated: true, completion: nil)
}

WebView.swift

 let storyboard = UIStoryboard(name: "Main", bundle: nil)
 let myAlert = storyboard.instantiateViewController(withIdentifier: "CheckAlertController") as! CheckAlertController
 myAlert.callBack = {
  // Execute your code
 }
 myAlert.modalPresentationStyle = .overCurrentContext
 myAlert.modalTransitionStyle = .crossDissolve
 self.present(myAlert, animated: false, completion: nil)

0
投票

在您的网页中添加JavaScript函数

<script type="text/javascript">
function updateViews(data)
{
    // do something with the data here
}
</script>

当您从WebView Controller获取数据时

self.webView.evaluateJavaScript("updateViews(\(data))") { result, error in
// handle result, error here
}

关闭模式后,有几种方法可以将数据从模态传递到WebView控制器,例如委托,推送本地通知,我个人将使用委托

© www.soinside.com 2019 - 2024. All rights reserved.