Why can't I see the preloaded WKWebView right away?

I am showing the `html` file using WKWebView. This problem occurs when you open another preloaded WKWebView from the main WKWebView, sometimes after showing a white screen. And when you see the screen, it flashes.




Main.js

$(document).ready(function(){
var data = {
apiType : "preload",
parameter : encodeURI(`view/other?value="testvalue"`)
}
webkit.messageHandlers.TestApp.postMessage(data);
...




$('#openBtn').on('click', function(){
   var data = {
apiType : "openOther"
   }
webkit.messageHandlers.TestApp.postMessage(data);




MainWKWebViewController.swift

func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
            case "preload":
                let parameter = message["parameter"] as! String
                preload(parameter)
                break
            case "openOther":
                openOtherScreen()
                break
...


func preload(_ prameter: String){
   let storyboard = UIStoryboard(name: "Main", bundle: nil)
   otherWebView = storyboard.instantiateViewController(withIdentifier: "OtherWebViewController") as? OtherWebViewController
   otherWebView.delegate = self
   otherWebView.paramFromMain = prameter
   otherWebView.loadViewIfNeeded()
   otherWebView.otherWebView.navigationDelegate = self
   preloadCheck = true
}
func openOtherScreen(){
  if preloadCheck {
      DispatchQueue.main.async {
          self.navigationController?.pushViewController(self.otherWebView, animated: true)
          self.preloadCheck = false
     }
   } else {
   }
}





Has anyone solved the same problem as me?



I tried out the layoutIfNeeded() function in addition. But it's the same.



func preload(_ prameter: String){
   let storyboard = UIStoryboard(name: "Main", bundle: nil)
   otherWebView = storyboard.instantiateViewController(withIdentifier: "OtherWebViewController") as? OtherWebViewController
   otherWebView.delegate = self
   otherWebView.paramFromMain = prameter
   otherWebView.view.layoutIfNeeded()
   DispatchQueue.main.async {
      self.otherWebView.loadViewIfNeeded()
      self.otherWebView.otherWebView.navigationDelegate = self
      self.preloadCheck = true
   }
}



How can I solve this problem?