首页 > 解决方案 > 如何在 ViewController 启动之前等待 AppDelegate 完成?

问题描述

仅在我的应用程序首次启动后出现问题。

我确定这是因为我的 ViewController 加载速度比 AppDelegate 快,然后 OneSignal userId 变量尚未设置,因此我的 webview 链接加载时没有 userId 值并且不显示它应该显示的动态内容......

在我的 AppDelegate.swift 中,我有一些常规的 OneSignal 设置,在最后一行 76 :

let userId = OneSignal.getPermissionSubscriptionState().subscriptionStatus.userId

该行将从智能手机收集唯一的 userId。

在我的 ViewController.swift 我有这个:

@IBOutlet var webview: WKWebView!

let defaults = UserDefaults.standard

private var monNom: String = ""

let playerId64 = (toBase64(word: userId ?? ""))

@IBOutlet weak var compteApplication: UIButton!

override func viewDidLoad() {
    super.viewDidLoad()
    
    webview.load(URLRequest(url: URL(string: "https://www.example.com/index.php?application::::::::::::::\(playerId64)")!))
    
    
    
}

我是 Swift 新手,希望您能教我如何解决这个问题。

标签: iosswiftviewcontrollerappdelegateonesignal

解决方案


您可以从中删除Main.storyboard引用info.plist。有两个地方可以删除,当你展开所有值时你会看到它们。现在您可以通过设置ViewController.AppDelegateSceneDelegaterootViewControllerwindow


推荐阅读