ใน Swift 4.1 และ Xcode 9.4.1
ทางออกคือ
DispatchQueue.main.async(execute: {
self.present(alert, animated: true)
})
ถ้าเขียนแบบนี้ฉันได้รับข้อผิดพลาดเดียวกัน
let alert = UIAlertController(title: "title", message: "message", preferredStyle: .alert)
let defaultAction = UIAlertAction(title: "OK", style: .default, handler: { action in
})
alert.addAction(defaultAction)
present(alert, animated: true, completion: nil)
ฉันได้รับข้อผิดพลาดเดียวกัน
Presenting view controllers on detached view controllers is discouraged <MyAppName.ViewController: 0x7fa95560Z070>.
โซลูชั่นที่สมบูรณ์คือ
let alert = UIAlertController(title: "title", message: "message", preferredStyle: .alert)
let defaultAction = UIAlertAction(title: "OK", style: .default, handler: { action in
})
alert.addAction(defaultAction)
//Made Changes here
DispatchQueue.main.async(execute: {
self.present(alert, animated: true)
})