你可以使用notificationCenter在SwiftUI中展示UIKit Alert
在SceneDelegate.swift文件的"func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions)"方法中插入以下代码 {
NotificationCenter.default.addObserver(self, selector:
并添加此函数
@objc private func showAlert(notification: NSNotification){
let msg: String = notification.object as! String
let alert = UIAlertController(title: "Title", message: msg, preferredStyle: .alert)
let cancelAction = UIAlertAction(title: "οκ", style: .cancel) { (action) in
}
alert.addAction(cancelAction)
DispatchQueue.main.async {
self.window?.rootViewController?.present(alert, animated: true, completion: nil)
}
}
现在,您可以通过在SwiftUI类中的操作中编写此代码,使应用程序显示一个带有UIKit AlertController的消息。
var body: some View {
Button(action:{
NotificationCenter.default.post(name: Notification.Name("showAlert"), object: "Ελέγξτε το δίκτυο σας και προσπαθήστε αργότερα.")
}
}
rootViewController
已过时。如果您正在使用SwiftUI,则最好更新到其.alert(isPresented:, content:)
方法。 - Andres Canella