簡體   English   中英

為什么我的警報不在視圖層次結構中

[英]Why my alert is not in the view hierarchy

我發現我的控制器不在此代碼的視圖層次結構中,我在viewDidLoad中將其稱為:

if CLLocationManager.locationServicesEnabled() {
    // code
} else {
    let alertController = UIAlertController(...)
    //
    present(alertController)
}

如果我將else子句包裝在主隊列中的.async或.asyncAfter中,我的問題就會消失。 為什么在這里發生這種情況?

謝謝!

根據您的問題,您嘗試在加載UIviewcontroller層次結構之前先加載UIAlertController,在這里您可以通過兩種方式做到這一點,

  • 您可以在主線程中強制加載UIAlertController,因此在這里您需要使用.async或.asyncAfter,但不建議這樣做
  • 替代建議,但它可以正常工作,您需要等待初始的UI視圖層次結構,這意味着您需要將代碼從viewDidLoad轉換為viewDidAppear。 對於ref: viewDidLoad和viewDidAppear之間的區別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM