When building with iOS 26 SDK beta 5 (23A5308f), onTapGesture is no longer being triggered on Map views. This appears to be a regression in beta 5 specifically, as this issue was not present in beta 4.
How to reproduce
Code
The following code demonstrates the issue, as seen in the videos below.
import MapKit
import SwiftUI
struct ContentView: View {
@State private var location = CGPoint.zero
var body: some View {
Map()
.onTapGesture { location in
self.location = location
}
.safeAreaInset(edge: .bottom) {
VStack(alignment: .center) {
Text("iOS \(UIDevice.current.systemVersion)")
.font(.largeTitle)
Text("Tapped Location")
Text("\(location.x), \(location.y)")
}
.frame(maxWidth: .infinity, alignment: .center)
.background(.background)
}
}
}
Demo
The gifs below show the behavior in iOS 18.5 (in which the tap gestures are recognized and tapped coordinate is displayed in the safe area inset) and iOS 26 beta 5 (in which the tap gestures have no effect):
iOS 18
iOS 26
Next steps?
Is there a recommended workaround for this issue?
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
When building with the iOS 26 SDK (currently beta 4) and using the .fullScreenCover modifier in conjunction with a TabView, content from the background view bleeds through the .fullScreenCover making the UI fairly illegible.
How to reproduce
The gifs below show the bleed through in iOS 26 and the previous behavior of the same code in iOS 18.
iOS 24 beta 4
iOS 18.5
Code
The code below was used to demonstrate the issue seen in the gifs above.
import SwiftUI
struct FullScreenCoverBleed: View {
@State private var isPresentingRegistration = false
var body: some View {
NavigationStack {
TabView {
Tab("Home", systemImage: "house") {
Button("Create Account") { isPresentingRegistration = true }
.buttonStyle(.borderedProminent)
.fullScreenCover(isPresented: $isPresentingRegistration) {
RegistrationWizard()
}
List {
ForEach(1 ..< 11) { index in
Text("Article \(index)")
}
}
.listStyle(.plain)
}
Tab("Settings", systemImage: "gear") {}
}
}
}
}
struct RegistrationWizard: View {
var body: some View {
// A page-style wizard
TabView {
// Page 1
VStack {
Text("Page 1").font(.largeTitle)
Text("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.")
Spacer()
}
// Page 2
Form {
TextField("Username", text: .constant(""))
// Fields for password, email, and so on ...
}
// Page 3 and so on...
}
.tabViewStyle(.page(indexDisplayMode: .automatic))
}
}
Where bleed-through occurs
Starting View (before .fullScreenCover)
Full Screen Cover VStack
Full Screen Cover Form
.sheet doesn't have this problem
Interestingly, if you use a .sheet instead of a .fullScreenCover, everything works as expected. As shown below, there's no bleed-through when using a .sheet:
Next steps?
Is there a recommended way to prevent this bleed-through? Or is this perhaps a known bug in iOS 26 beta 4?
Topic:
UI Frameworks
SubTopic:
SwiftUI
When building with the iOS 26 SDK (currently beta 4), the navigation title is often illegible when rendering a Map view.
For example, note how the title "Choose Location" is obscured by the map's text ("South America") in the screenshot below:
This screenshot is the result of the following view code:
import MapKit
import SwiftUI
struct Demo: View {
var body: some View {
NavigationStack {
Map()
.navigationTitle(Text("Choose Location"))
.navigationBarTitleDisplayMode(.inline)
}
}
}
I tried using the scrollEdgeEffectStyle(_:for:) modifier to apply a scroll edge effect to the top of the screen, in hopes of making the title legible, but that doesn't seem to have any effect. Specifically, the following code seems to produce the exact same result shown in the screenshot above.
import MapKit
import SwiftUI
struct Demo: View {
var body: some View {
NavigationStack {
Map()
.scrollEdgeEffectStyle(.hard, for: .top) // ⬅️ no apparent effect
.navigationTitle(Text("Choose Location"))
.navigationBarTitleDisplayMode(.inline)
}
}
}
Is there a recommended way to resolve this issue so that the navigation title is always readable?