导航控制器到 Pushviewcontroller 到新的视图控制器,WebKit 延迟/首次加载时慢

Posted

技术标签:

【中文标题】导航控制器到 Pushviewcontroller 到新的视图控制器,WebKit 延迟/首次加载时慢【英文标题】:Navigation Controller to Pushviewcontroller to New View Controller with WebKit Delay/Slow on First Load 【发布时间】:2020-07-24 09:54:46 【问题描述】:

设置很简单。我有一个正在加载的 NavigationController。当我单击表格行或按钮以加载使用 WebKit 加载的新控制器时,会有 2-3 秒的延迟,这是我第一次加载它。加载一次后,一切正常。我可以回去,过渡是即时的。

*** 中不乏这个问题,但每个问题都有相同的 Swift 5 公认答案。这对我没有帮助。

    DispatchQueue.main.async 
        let newController = MyWebViewController()
        self.navigationController?.pushViewController(newController, animated: true)
    

同样,它只是第一次发生。

这也是我在新 VC 中的代码。

private lazy var webView = WKWebView()

override func loadView() 
    webView = WKWebView()
    webView.navigationDelegate = self
    view = webView


override func viewDidLoad() 
    super.viewDidLoad()
    let url = URL(string: "https://www.apple.com")!
    webView.load(URLRequest(url: url))
    webView.allowsBackForwardNavigationGestures = true

【问题讨论】:

【参考方案1】:

我解决了这个问题,首先通过 ViewDidLoad 加载 UIView,然后通过 viewdidappear 加载 webkit。

【讨论】:

以上是关于导航控制器到 Pushviewcontroller 到新的视图控制器,WebKit 延迟/首次加载时慢的主要内容,如果未能解决你的问题,请参考以下文章

导航控制器中的后退按钮有啥 pushViewController 没有的功能?

如何覆盖 pushViewController 创建的导航栏的功能

使用 pushViewController 然后 popViewController 时将工具栏保持在 UIView 的顶部?

iOS pushViewController 不工作

如何使用 PushViewController 方法从 UIViewClass 导航到 UIViewController 类

UINavigationBar 立即消失,而带有动画的 pushViewcontroller 为真