Hello,
We use the .confirmationDialog() view modifier to present an alert when deleting an item in a list. Prior to iOS 26, this dialog appeared as an action sheet on iPhone.
Following WWDC 25, my understanding is that on iOS 26 the dialog should appear as an action sheet over the originating view on iPhone. This is the behavior we observe in the built-in Messages and Mail apps when deleting an item (see the screenshot below).
However, when using .confirmationDialog() on iOS 26, the dialog is displayed as a standard popover on iPhone. I haven’t been able to reproduce the new expected behavior.
Here's a sample code:
struct ContentView: View {
@State var data: [String] = ["A", "B", "C"]
@State var confirmationPresented: Bool = false
var body: some View {
List {
ForEach(data, id: \.self) { item in
Text(item)
.confirmationDialog("Title", isPresented: $confirmationPresented, actions: {
Button(action: {
}, label: {
Text("OK")
})
})
.swipeActions {
Button("Delete", systemImage: "trash", action: {
confirmationPresented.toggle()
})
.tint(Color.red)
}
}
}
}
}
Here's the result from this sample code:
Is there an additional modifier or configuration required to enable the action sheet presentation on iPhone in iOS 26?