如何在ViewController启动之前等待AppDelegate完成?

时间:2020-08-08 13:28:24

标签: ios swift viewcontroller appdelegate onesignal

仅在首次启动我的应用程序后发生了问题。

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

在我的AppDelegate.swift中,我有一些常规的OneSignal设置,并在第76行结尾:

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

该行将从智能手机中收集唯一的用户ID。

在我的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的新手,我想请您教我如何解决此问题。

1 个答案:

答案 0 :(得分:0)

您可以从Main.storyboard中删除info.plist引用。有两个地方可以删除,展开所有值后您会看到它们。现在,您可以通过设置ViewController的{​​{1}}属性来手动将AppDelegate加载到SceneDelegaterootViewController中。