Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swiftui 为什么第二个警报没有显示?_Swiftui_Alert - Fatal编程技术网

Swiftui 为什么第二个警报没有显示?

Swiftui 为什么第二个警报没有显示?,swiftui,alert,Swiftui,Alert,在下面的简单示例中,为什么没有显示警报2 struct ContentView:View{ @状态私有变量showingOtherButton=false @状态私有变量showingAlert1=false @国家私有变量showingAlert2=false var body:一些观点{ 团体{ 如果显示其他按钮{ 按钮(“显示警报2”){ showingAlert2=true } .警报(显示:$showingAlert2){ 打印(“应显示警报2”) 返回警报(标题:文本(“警报2”),

在下面的简单示例中,为什么没有显示警报2

struct ContentView:View{
@状态私有变量showingOtherButton=false
@状态私有变量showingAlert1=false
@国家私有变量showingAlert2=false
var body:一些观点{
团体{
如果显示其他按钮{
按钮(“显示警报2”){
showingAlert2=true
}
.警报(显示:$showingAlert2){
打印(“应显示警报2”)
返回警报(标题:文本(“警报2”),解除按钮:。默认值(文本(“确定”))
}
}否则{
按钮(“显示其他按钮”){
self.showingOtherButton=true
}
按钮(“显示警报1”){
showingAlert1=true
}
}
}
.警报(显示:$showingAlert1){
警报(标题:文本(“警报1”),解除按钮:。默认值(文本(“确定”))
}
}
}

将“警报1”修改器直接放置在“显示警报1”按钮上可以使其正常工作,但我不明白为什么。

您的第二个警报应该与第一个警报放在同一位置-附加到
视图,而不是
按钮

组{
如果显示其他按钮{
按钮(“显示警报2”){
showingAlert2=true
}
}否则{
按钮(“显示其他按钮”){
self.showingOtherButton=true
}
按钮(“显示警报1”){
showingAlert1=true
}
}
}
.警报(显示:$showingAlert1){
警报(标题:文本(“警报1”),解除按钮:。默认值(文本(“确定”))
}
.警报(显示:$showingAlert2){
打印(“应显示警报2”)
返回警报(标题:文本(“警报2”),解除按钮:。默认值(文本(“确定”))
}

是的,但为什么?有时在嵌套视图上使用“警报”修改器似乎更方便。@牛顿从概念上讲,iOS警报属于整个视图。它完全中断了应用程序流程,用户无法继续而不作出响应。如果希望嵌套子视图上有一个popover,可以实现它。但iOS内置的警报是全屏的。你可以阅读或阅读