使用SwiftUI在条件中显示警报

使用SwiftUI在条件中显示警报,swift,uikit,uialertview,uialertcontroller,swiftui,Swift,Uikit,Uialertview,Uialertcontroller,Swiftui,我知道警报可以作为按钮的功能显示,但是警报是否可以在条件列表中显示?例如: struct ContentView: View { var body: some View { Text("Hello World!") } } if isValid { //present alert let alert = UIAlertController(title: "My Title", message: "This is my mes

我知道
警报
可以作为
按钮
的功能显示,但是
警报
是否可以在条件列表中显示?例如:

struct ContentView: View {

    var body: some View {
        Text("Hello World!")
    }
}    

if isValid {

    //present alert
    let alert = UIAlertController(title: "My Title", message: "This 
    is my message.", preferredStyle: UIAlertController.Style.alert)

    alert.addAction(UIAlertAction(title: "OK", style: 
    UIAlertAction.Style.default, handler: nil))

    self.present(alert, animated: true, completion: nil)
}
有了这个我就明白了

“ContentView”类型的值没有成员“present”


我不知道你为什么要用UIKit。下面是一个示例,说明当某个标志发生更改时,如何显示警报。在这种情况下,两秒计时器:

导入快捷界面
类MyModel:ObservableObject{
@发布的变量isValid:Bool=false
init(){
DispatchQueue.main.asyncAfter(截止日期:.now()+秒(2)){
self.isValid=true
}
}
}
结构ContentView:View{
@ObservedObject变量模型:MyModel=MyModel()
var body:一些观点{
VStack{
文本(“某些文本”)
文本(“某些文本”)
文本(“某些文本”)
文本(“某些文本”)
}.alert(显示:$model.isValid,内容:{
警报(标题:文本(“标题”),
信息:文本(“信息”),
dismissButton:。默认值(文本(“确定”){print(“do something”)})
})
}
}

我不知道你为什么要使用UIKit。下面是一个示例,说明当某个标志发生更改时,如何显示警报。在这种情况下,两秒计时器:

导入快捷界面
类MyModel:ObservableObject{
@发布的变量isValid:Bool=false
init(){
DispatchQueue.main.asyncAfter(截止日期:.now()+秒(2)){
self.isValid=true
}
}
}
结构ContentView:View{
@ObservedObject变量模型:MyModel=MyModel()
var body:一些观点{
VStack{
文本(“某些文本”)
文本(“某些文本”)
文本(“某些文本”)
文本(“某些文本”)
}.alert(显示:$model.isValid,内容:{
警报(标题:文本(“标题”),
信息:文本(“信息”),
dismissButton:。默认值(文本(“确定”){print(“do something”)})
})
}
}

我一直在尝试着做同样的事情,除了在不同的swift课堂上,在最后一节课上。当我在视图中直接调用绑定时,ui不会更改(无警报),但当我在视图中创建状态时,在我的按钮操作中,将状态分配给observerdObj中的绑定时,它会工作,但我认为这不是用例。有什么建议吗?我一直在尝试做同样的事情,除了在最后一节课的另一节swift课上。当我在视图中直接调用绑定时,ui不会更改(无警报),但当我在视图中创建状态时,在我的按钮操作中,将状态分配给observerdObj中的绑定时,它会工作,但我认为这不是用例。有什么建议吗?