我想做一些类似于下面代码的事情,当用户点击导航栏项目按钮时,它会显示一个警报。但是下面的代码不起作用,警报不会显示。
我不能将alert修饰符添加到NavigationView
中,因为我的实际应用程序更复杂,而VStack
是另一个文件中的视图,在同一个视图中添加多个alert修饰符也不起作用(只有最后一个添加的有效)。
import SwiftUI
struct SOQuestionView: View {
@State private var showAlert1 = false
@State private var showAlert2 = false
var body: some View {
NavigationView {
VStack {
Text("Click button in toolbar")
}
.navigationBarTitle(Text("Title"))
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Button(action: {
showAlert1 = true
}) {
Image(systemName: "square.and.arrow.up")
}
.alert(isPresented: $showAlert1) {
Alert(title: Text("Alert 1"))
}
}
ToolbarItem(placement: .navigationBarTrailing) {
Button(action: {
showAlert2 = true
}) {
Image(systemName: "square.and.arrow.up.fill")
}
.alert(isPresented: $showAlert2) {
Alert(title: Text("Alert 2"))
}
}
}
}
}
}
2条答案
按热度按时间pexxcrt21#
解决方案是在工具栏之外使用alert,并使用不同的构造函数。使用Xcode 12.1 / iOS 14.1进行测试。
wa7juj8i2#
我用这个视图传递带有alert的按钮,它在
ToolbarItem
内部工作