Explore the various UI frameworks available for building app interfaces. Discuss the use cases for different frameworks, share best practices, and get help with specific framework-related questions.

All subtopics
Posts under UI Frameworks topic

Post

Replies

Boosts

Views

Activity

Where is preferredFilenameExtension getting its information?
If I use [UTType exportedTypeWithIdentifier:] to get one of the types in my app's Info.plist, and then ask for the preferredFilenameExtension of that UTType, I get the wrong extension, i.e., not the first file extension listed for that UTI in my Info.plist. Is this one of those situations where AppKit is looking in some database that can get out of sync with what's actually in the Info.plist?
Topic: UI Frameworks SubTopic: AppKit
2
0
110
Jul ’25
PKPass Framework
I am trying to work with the data inside the barcode string in shared PKPass. The documentation shows that is should look for @property (nonatomic, readonly, nullable) PKBarcode *primaryBarcode; I have tried to use it like this guard let code = pass.primaryBarcode?.message else { return } I get a constant message that PKPass has no member primaryBarcode The PKPass.h file in my IOS SDK does not seem to include the @property primaryBarcode or @property barcode. I am running Xcode 16.4 (16F6) and my app target is 17.6 + Is there a restriction on this property? I cannot find an SDK later than mine - the App Store does not offer one. I am unsure of this is a public or private issue - does anyone know? Thanks for reading this. Max
Topic: UI Frameworks SubTopic: SwiftUI
0
0
101
Jun ’25
Application crashes when using TextEditor(text, selection)
I have a TextEditor, to the constructor of which in addition to the text I pass an object of the TextSelection? type. I check on the Simulator with iOS 18.2. An attempt to clear the text leads to a crash with the message "Thread 1: Fatal error: String index is out of bounds" in Xcode. More about the error: libswiftCore.dylib`_swift_runtime_on_report: -> 0x194f32024 <+0>: ret More about the reproduction conditions: struct MyView: View { @Bindable private var viewModel = MyViewModel() @State var myTextSelection: TextSelection? = nil var body: some View { ZStack { // Some other code myEditor // Some other code } .toolbar { ToolbarItem(placement: .primaryAction) { Button { viewModel.clear() } label: { Label("Clear", systemImage: "eraser") } } } } var myEditor: some View { ZStack(alignment: .topLeading) { TextEditor(text: $viewModel.text, selection: $myTextSelection) .disableAutocorrection(true) .autocapitalization(.sentences) } // Some other code } } MyViewModel: @Observable final class MyViewModel: ObservableObject { var text: String = "" func clear() { text = "" } }
1
0
137
May ’25
Cursor position sync between IOS touch screen and app textview.
The app puts button values into a text view area and controls the cursor. Upon an IOS touch screen, cut or paste, the IOS cursor loses sync with the app cursor causing an address out of bounds and fails. The IOS cut or paste changes the cursor position and the text.endIndex address by shrinking or expanding the text field. IOS doesn't know about the app cursorPosition. If IOS could update the app cursor position and the text.endIndex position would solve the problem. Or if the app knew about the IOS change could update the app cursor position and the text.endIndex. The current work around is the user sets the cursor to the text.startIndex using an app navigating button before the touch screen. The app does not fail. The user then navigates the cursor using arrow buttons to another position. To see this happen download the free SummaGramIPAD Trial.(13") TSIs have been requested with engineer suggestions for well over one year. I hope someone could figure this out. I just finished SummaGram iPhone and would like to host it. Thanks for your help. Charlie
0
0
135
Jul ’25
ApplePay QR code popup language
Hi Team, when launching an ApplePay session from a 3rd party browser where we get the QR code popup - is it possible to affect the popup's language? We are setting the button's language via locale parameter, but when the QR code pop's up it does not respect this setting (seems like it respects browser language). Button in Arabic Corresponding popup Browser language Arabic Coresponding popup I was unable to find anything in the documentation - could you please either point me to the relevant documentation or confirm/deny that it is possible to request a language for the popup via tjr javascript API? Kind regards Tomas
0
0
120
May ’25
FocusedBinding and selecting item in the List issue
Hello dear community! I'm still new to SwiftUI and going through the official Introducing SwiftUI Tutorials (basically, building the Landmarks app) And I'm struggle with some behavior I noticed in the macOS version of the Landmarks app. So, here is the idea, there is a list of Landmarks (the simplified version from the tutorial): struct LandmarkList: View { @Environment(ModelData.self) var modelData @State private var selectedLandmark: Landmark? var index: Int? { modelData.landmarks.firstIndex(where: { $0.id == selectedLandmark?.id }) } var body: some View { @Bindable var modelData = modelData NavigationSplitView { List(selection: $selectedLandmark) { ForEach(modelData.landmarks) { landmark in NavigationLink { LandmarkDetail(landmark: landmark) } label: { LandmarkRow(landmark: landmark) } .tag(landmark) } } .navigationTitle("Landmarks") .frame(minWidth: 300) } detail: { Text("Select a landmark") } .focusedValue(\.selectedLandmark, $modelData.landmarks[index ?? 0]) } } And there are a few helper structs which makes the possibility of the Marking a selected landmark as favorite (or remove) via shortcut and via menu: struct LandmarkCommands: Commands { @FocusedBinding(\.selectedLandmark) var selectedLandmark var body: some Commands { SidebarCommands() CommandMenu("Landmark") { Button("\(selectedLandmark?.isFavorite == true ? "Remove" : "Mark") as Favorite") { selectedLandmark?.isFavorite.toggle() } .keyboardShortcut("f", modifiers: [.shift, .option]) .disabled(selectedLandmark == nil) } } } private struct SelectedLandmarkKey: FocusedValueKey { typealias Value = Binding<Landmark> } extension FocusedValues { var selectedLandmark: Binding<Landmark>? { get { self[SelectedLandmarkKey.self] } set { self[SelectedLandmarkKey.self] = newValue } } } So, with this setup which is presented in the tutorial I notice 3 issues: On the first launch of the app, if I try to select a landmark — it's get unselected instantly. It I try to select it again — it works Marking a selected Landmark as favorite via shortcut (f+shift+opt) or via menu makes the selected Landmark unselected On the Landmark details — marking a Landmark as Favorite also makes the landmark unselected. You can check it on your own if you download the completed project from this page: https://developer.apple.com/tutorials/swiftui/creating-a-macos-app But could someone please explain why it's happening? And how to avoid such a bad UX with unselecting items in the list?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
1
0
263
Jul ’25
SwiftUI Bug on tvOS 18 – TextField Broken in Modals
Just noticed a bug in tvOS 18+: If you present a modal (.sheet or similar) that contains a TextField, click into the text field to select your text from keyboard, then press the Back button, the TextField becomes unclickable and we are not able to update the textfield again. This behavior didn’t happen in tvOS 17, so it seems to be a regression introduced in tvOS 18.3, tested only on silumator Repro steps: Present a modal with a TextField Focus and click the TextField Press the Back button to dismiss the keyBoard Try clicking the TextField → nothing happens (and textfield is full white) If anyone has a workaround, I’d love to hear it! struct ModalView: View { @State var text: String = "" var body: some View { TextField("", text: $text, prompt: Text("Prompt")) } } struct ContentView: View { @State var isModal: Bool = false var body: some View { NavigationView { ZStack { SwiftUI.Button.init { isModal = true } label: { Text("click") } } }.sheet(isPresented: $isModal) { ModalView() } } }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
1
0
135
Jul ’25
iOS app bottom and top layout not working
Hello. I have a projet due in a few days and there is smth wrong with my code. It has some kind of "border" on top and on the bottom, and it really interferes with my app. At first thought it was a simulator problem so tried on a physical iphone (13pr) and the border was still there. Already tried to use .ignoreSafeArea but still doesnt work. So I came here. Please help me, thanks! Attached below is the screenshot of the "border" This is my code for Contentview ContentView.swift Please help asap, as the project is due i a few days. Thanks!
Topic: UI Frameworks SubTopic: SwiftUI
2
0
125
Jun ’25
hidesBottomBarWhenPushed does not work on iOS 26
Since iOS 26, hidesBottomBarWhenPushed no longer works. We have numerous screens in our app which depend on being able to extend content to the bottom of the screen, and this feels like a bug. Consider this example, running the exact same code across iOS 18 and iOS 26. On iOS 18, pushing the button pushes a view controller and the tab bar disappears, on iOS 26, however, pushing the view controller does not hide the tab bar. I've filed this as FB18543961 and attached the sample project.
Topic: UI Frameworks SubTopic: UIKit Tags:
2
0
205
Jul ’25
How remove AppIntent dialog programmatically?
When the perform method of my AppIntent returns the custom view's dialog, and after I click the "Click Test" button, my app will be launched, but this dialog does not close. How can I close it? struct QuestionResultView: View { var body: some View { VStack { if #available(iOS 17.0, *) { Button(role:.cancel, intent: OpenAppIntent()) { Text("Click Test") } } }.frame(height: 300) } } struct OpenAppIntent : AppIntent { static let title: LocalizedStringResource = "Open my app" static let openAppWhenRun: Bool = true static let isDiscoverable: Bool = false; @MainActor func perform() async throws -> some IntentResult { return .result() } } struct OpenPhotoRecognizing: AppIntent { static let title: LocalizedStringResource = "Read photo" static let description = IntentDescription("") static let openAppWhenRun: Bool = false func perform() async throws -> some IntentResult & ShowsSnippetView & ProvidesDialog{ return .result(dialog: "Demo Test") { DemoResultView() } } }
Topic: UI Frameworks SubTopic: SwiftUI
0
0
84
May ’25
Tipkit for VisionOS (TabView, etc.)
I am trying to create a user flow where I can guide the user how to navigate through my app. I want to add a tip on a TabView that indicates user to navigate to a specific tab. I have seen this work with iOS properly but I am a little lost as VisionOS is not responding the same for .popoverTip etc. Any guidance is appreciated!
0
0
225
Jul ’25
Crash/Glitch when using setViewControllers(_:animated:) with UIHostingController and .refreshable in SwiftUI
Introduction Hello, As part of our ongoing migration to SwiftUI, we are currently managing navigation using UIKit. Our SwiftUI views are embedded in UIHostingController instances and pushed or presented via UINavigationController. We’ve encountered an issue that causes either a UI glitch on iOS 18 or a crash on iOS 17 when using the .refreshable modifier in a SwiftUI view that is added to a UINavigationController via setViewControllers(_:animated:). To reproduce the issue, we’re using the following simple SwiftUI view: struct TestView: View { var body: some View { List { ForEach(0...100, id: \.self) { Text("Number: \($0)") } } .refreshable { // No action needed — the presence of this modifier alone triggers the issue } } } Problematic Scenario The following code causes the issue: class ViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let initialNav = self.navigationController let hostingController = UIHostingController(rootView: TestView()) let newNav = UINavigationController() // This causes a freeze (iOS 18) or crash (iOS 17) newNav.setViewControllers([hostingController], animated: true) initialNav?.present(newNav, animated: true) } } After presenting the navigation controller, our app is freezing on iOS 18 or crashing on iOS 17. Working scenario When using pushViewController(_:animated:), the issue does not occur: class ViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let initialNav = self.navigationController let hostingController = UIHostingController(rootView: TestView()) let newNav = UINavigationController() // This works without issue newNav.pushViewController(hostingController, animated: true) initialNav?.present(newNav, animated: true) } } Conclusion We would like to better understand the root cause of this behavior. While using pushViewController is a viable workaround, there are scenarios where we must rely on setViewControllers, and currently, that approach breaks the experience or crashes the app. Is this a known issue, or are we missing something about how UIHostingController interacts with .refreshable in this context? Thanks for your time — we look forward to any insights you can share.
2
0
247
May ’25
URL in scene openURLContexts does not exist
I'm trying to update an old iOS app to use the UIScene architecture, and I've run into a problem I'm hoping somebody can help me fix. When I try to share a file with my app by AirDrop from another device, the URL that I'm getting from the urlContexts argument does not exist on the device. Here's the code I'm using in my SceneDelegate class to get things going: func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url else { os_log("URL in %@ is nil", #function) return } // check that it's the proper file type guard url.pathExtension == fileExtension.replacingOccurrences(of: ".", with: "") else { return } ... } When I set a breakpoint after populating the url property, checking its existence in the Xcode Console reveals the enclosing folder does not exist: (lldb) po url.path /private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/Downloads/Seattle Times 2025-04-30 10.dbsud (lldb) po FileManager.default.fileExists(atPath: URL(filePath: "/private/var/mobile/Library/Mobile Documents").path) true (lldb) po FileManager.default.fileExists(atPath: URL(filePath: "/private/var/mobile/Library/Mobile Documents/com-apple-CloudDocs/Downloads").path) false (lldb) po FileManager.default.fileExists(atPath: URL(filePath: "/private/var/mobile/Library/Mobile Documents/com-apple-CloudDocs/").path) false So when I try to process the file at the provided URL, it fails of course. Any ideas on how I can fix this? This is happening while running the code on an iPad with iOS 18.5 from Xcode 16.4. If it makes a difference, the AirDrop is originated from an iPhone 16 Pro also running iOS 18.5.
Topic: UI Frameworks SubTopic: UIKit Tags:
2
0
143
Jul ’25
Best Way to Help Users Diagnose iOS App Crashes with No UI Feedback
Hi all, We're working on an iOS application and would like to improve our ability to diagnose failures - especially in scenarios where the app crashes before it can present any UI to the user. A few specific questions: In case of an exception or crash, is there a way to log the issue so the user (or our support team) can understand the cause of the failure? If the app crashes abruptly (e.g., due to a runtime exception or crash during launch), is there a recommended way to persist error information before the process terminates? Are there Apple-supported mechanisms (like crash reporting tools or APIs) we can integrate that would help us capture such issues? What’s the best practice for enabling support teams to assist users based on crash reports - especially for crashes that happen before any user interaction? Our goal is to make sure users aren't left in the dark if the app fails to start, and to allow us to deliver timely updates or support based on the cause of the crash. Thanks in advance for your guidance!
Topic: UI Frameworks SubTopic: General Tags:
0
0
118
May ’25
Tesflight and Firebase Auth issues on AppResume
I am working on my app and encountering issues when promoting my app to TestFlight, after I download the app on testflight on my device I am able to log in, however if I minimize the app and try to re-open it again, I get a blank screen, after that, I have tried removing app and reinstalling but no sucess there. I have compiled the app in release mode in xcode directly (Scheme > Release) and was able to run the app normally and no isues observed in logm only when promoted to testflight for testing App stack: Flutter (built using latest Flutterflow build 6.0.34) Firebase backend
Topic: UI Frameworks SubTopic: General
0
0
136
Jul ’25
How to achieve a pure backdrop blur effect without predefined tint color in SwiftUI / UIKit?
Hi everyone, I’m currently trying to create a pure backdrop blur effect in my iOS app (SwiftUI / UIKit), similar to the backdrop-filter: blur(20px) effect in CSS. My goal is simple: • Apply a Gaussian blur (radius ~20px) to the background content • Overlay a semi-transparent black layer (opacity 0.3) • Avoid any predefined color tint from UIBlurEffect or .ultraThinMaterial, etc. However, every method I’ve tried so far (e.g., .ultraThinMaterial, UIBlurEffect(style:)) always introduces a built-in tint, which makes the result look gray or washed out. Even when layering a black color with opacity 0.3 over .ultraThinMaterial, it doesn’t give the clean, transparent-black + blur look I want. What I’m looking for: • A clean 20px blur effect (like CIGaussianBlur) • No color shift/tint added by default • A layer of black at 30% opacity on top of the blur • Ideally works live (not a static snapshot blur) Has anyone achieved something like this in UIKit or SwiftUI? Would really appreciate any insights, workarounds, or libraries that can help. Thanks in advance! Ben
3
0
222
Jun ’25
Glitch on buttons in all types of OS of Apple ecosystem
as a beta tester I am trying to explore the OS on multiple platforms like iO, iPadOS, MacOS, WatchOS. While on trying to use beta 1 have few issues and reported to Apple with analytics as I do for better improvements. But, in beta 2 there is an issue of glitches on UI. This also tried to report. But, while am trying record screen I can not see in that video after the screen record. But, in reality I can see that glitch with eyes. as everyone know without evidence we can not report the same with tickets properly and they also can not resolve the issues. It’s affecting on all types of OS platforms of Apple buttons and search positions etc. one more thing I absorbed is while am trying use overlay player and browse the safari or any apple developer apps which are full screen the devices are freezing and not responding and after hard restart those are starting after 10mins. As per my knowledge. Those are going through the memory overflow issue.
0
0
212
Jul ’25
Understanding how to make focusedImage work on CPMapButton
When my CPMapButton is selected/focused, I would like to be able to provide a focusedImage to correctly show the button when the blue focus is shown. Currently I have: What do I need to do to create an image that works more like the panning interface buttons?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
0
Boosts
0
Views
240
Activity
Jun ’25
Where is preferredFilenameExtension getting its information?
If I use [UTType exportedTypeWithIdentifier:] to get one of the types in my app's Info.plist, and then ask for the preferredFilenameExtension of that UTType, I get the wrong extension, i.e., not the first file extension listed for that UTI in my Info.plist. Is this one of those situations where AppKit is looking in some database that can get out of sync with what's actually in the Info.plist?
Topic: UI Frameworks SubTopic: AppKit
Replies
2
Boosts
0
Views
110
Activity
Jul ’25
PKPass Framework
I am trying to work with the data inside the barcode string in shared PKPass. The documentation shows that is should look for @property (nonatomic, readonly, nullable) PKBarcode *primaryBarcode; I have tried to use it like this guard let code = pass.primaryBarcode?.message else { return } I get a constant message that PKPass has no member primaryBarcode The PKPass.h file in my IOS SDK does not seem to include the @property primaryBarcode or @property barcode. I am running Xcode 16.4 (16F6) and my app target is 17.6 + Is there a restriction on this property? I cannot find an SDK later than mine - the App Store does not offer one. I am unsure of this is a public or private issue - does anyone know? Thanks for reading this. Max
Topic: UI Frameworks SubTopic: SwiftUI
Replies
0
Boosts
0
Views
101
Activity
Jun ’25
cornerConfiguration API not available for UIVisualEffectView()
Hi, There is new cornerConfiguration API introduced for UIVisualEffectView mentioned in tutorial below. https://developer.apple.com/videos/play/wwdc2025/284/ But it is not available to use as of now. Using Xcode 26 Beta 2. Please get it fixed.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
2
Boosts
0
Views
181
Activity
Jul ’25
Application crashes when using TextEditor(text, selection)
I have a TextEditor, to the constructor of which in addition to the text I pass an object of the TextSelection? type. I check on the Simulator with iOS 18.2. An attempt to clear the text leads to a crash with the message "Thread 1: Fatal error: String index is out of bounds" in Xcode. More about the error: libswiftCore.dylib`_swift_runtime_on_report: -> 0x194f32024 <+0>: ret More about the reproduction conditions: struct MyView: View { @Bindable private var viewModel = MyViewModel() @State var myTextSelection: TextSelection? = nil var body: some View { ZStack { // Some other code myEditor // Some other code } .toolbar { ToolbarItem(placement: .primaryAction) { Button { viewModel.clear() } label: { Label("Clear", systemImage: "eraser") } } } } var myEditor: some View { ZStack(alignment: .topLeading) { TextEditor(text: $viewModel.text, selection: $myTextSelection) .disableAutocorrection(true) .autocapitalization(.sentences) } // Some other code } } MyViewModel: @Observable final class MyViewModel: ObservableObject { var text: String = "" func clear() { text = "" } }
Replies
1
Boosts
0
Views
137
Activity
May ’25
Cursor position sync between IOS touch screen and app textview.
The app puts button values into a text view area and controls the cursor. Upon an IOS touch screen, cut or paste, the IOS cursor loses sync with the app cursor causing an address out of bounds and fails. The IOS cut or paste changes the cursor position and the text.endIndex address by shrinking or expanding the text field. IOS doesn't know about the app cursorPosition. If IOS could update the app cursor position and the text.endIndex position would solve the problem. Or if the app knew about the IOS change could update the app cursor position and the text.endIndex. The current work around is the user sets the cursor to the text.startIndex using an app navigating button before the touch screen. The app does not fail. The user then navigates the cursor using arrow buttons to another position. To see this happen download the free SummaGramIPAD Trial.(13") TSIs have been requested with engineer suggestions for well over one year. I hope someone could figure this out. I just finished SummaGram iPhone and would like to host it. Thanks for your help. Charlie
Replies
0
Boosts
0
Views
135
Activity
Jul ’25
ApplePay QR code popup language
Hi Team, when launching an ApplePay session from a 3rd party browser where we get the QR code popup - is it possible to affect the popup's language? We are setting the button's language via locale parameter, but when the QR code pop's up it does not respect this setting (seems like it respects browser language). Button in Arabic Corresponding popup Browser language Arabic Coresponding popup I was unable to find anything in the documentation - could you please either point me to the relevant documentation or confirm/deny that it is possible to request a language for the popup via tjr javascript API? Kind regards Tomas
Replies
0
Boosts
0
Views
120
Activity
May ’25
FocusedBinding and selecting item in the List issue
Hello dear community! I'm still new to SwiftUI and going through the official Introducing SwiftUI Tutorials (basically, building the Landmarks app) And I'm struggle with some behavior I noticed in the macOS version of the Landmarks app. So, here is the idea, there is a list of Landmarks (the simplified version from the tutorial): struct LandmarkList: View { @Environment(ModelData.self) var modelData @State private var selectedLandmark: Landmark? var index: Int? { modelData.landmarks.firstIndex(where: { $0.id == selectedLandmark?.id }) } var body: some View { @Bindable var modelData = modelData NavigationSplitView { List(selection: $selectedLandmark) { ForEach(modelData.landmarks) { landmark in NavigationLink { LandmarkDetail(landmark: landmark) } label: { LandmarkRow(landmark: landmark) } .tag(landmark) } } .navigationTitle("Landmarks") .frame(minWidth: 300) } detail: { Text("Select a landmark") } .focusedValue(\.selectedLandmark, $modelData.landmarks[index ?? 0]) } } And there are a few helper structs which makes the possibility of the Marking a selected landmark as favorite (or remove) via shortcut and via menu: struct LandmarkCommands: Commands { @FocusedBinding(\.selectedLandmark) var selectedLandmark var body: some Commands { SidebarCommands() CommandMenu("Landmark") { Button("\(selectedLandmark?.isFavorite == true ? "Remove" : "Mark") as Favorite") { selectedLandmark?.isFavorite.toggle() } .keyboardShortcut("f", modifiers: [.shift, .option]) .disabled(selectedLandmark == nil) } } } private struct SelectedLandmarkKey: FocusedValueKey { typealias Value = Binding<Landmark> } extension FocusedValues { var selectedLandmark: Binding<Landmark>? { get { self[SelectedLandmarkKey.self] } set { self[SelectedLandmarkKey.self] = newValue } } } So, with this setup which is presented in the tutorial I notice 3 issues: On the first launch of the app, if I try to select a landmark — it's get unselected instantly. It I try to select it again — it works Marking a selected Landmark as favorite via shortcut (f+shift+opt) or via menu makes the selected Landmark unselected On the Landmark details — marking a Landmark as Favorite also makes the landmark unselected. You can check it on your own if you download the completed project from this page: https://developer.apple.com/tutorials/swiftui/creating-a-macos-app But could someone please explain why it's happening? And how to avoid such a bad UX with unselecting items in the list?
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
1
Boosts
0
Views
263
Activity
Jul ’25
Multitasking Button Notifications in Control Center
In iPadOS 26, the Control Center includes a Multitasking button that lets users switch between full-screen and windowed apps. Is any UISceneDelegate method invoked when this happens, or is there another mechanism by which the app is notified?
Topic: UI Frameworks SubTopic: UIKit
Replies
0
Boosts
0
Views
77
Activity
Jul ’25
SwiftUI Bug on tvOS 18 – TextField Broken in Modals
Just noticed a bug in tvOS 18+: If you present a modal (.sheet or similar) that contains a TextField, click into the text field to select your text from keyboard, then press the Back button, the TextField becomes unclickable and we are not able to update the textfield again. This behavior didn’t happen in tvOS 17, so it seems to be a regression introduced in tvOS 18.3, tested only on silumator Repro steps: Present a modal with a TextField Focus and click the TextField Press the Back button to dismiss the keyBoard Try clicking the TextField → nothing happens (and textfield is full white) If anyone has a workaround, I’d love to hear it! struct ModalView: View { @State var text: String = "" var body: some View { TextField("", text: $text, prompt: Text("Prompt")) } } struct ContentView: View { @State var isModal: Bool = false var body: some View { NavigationView { ZStack { SwiftUI.Button.init { isModal = true } label: { Text("click") } } }.sheet(isPresented: $isModal) { ModalView() } } }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
1
Boosts
0
Views
135
Activity
Jul ’25
iOS app bottom and top layout not working
Hello. I have a projet due in a few days and there is smth wrong with my code. It has some kind of "border" on top and on the bottom, and it really interferes with my app. At first thought it was a simulator problem so tried on a physical iphone (13pr) and the border was still there. Already tried to use .ignoreSafeArea but still doesnt work. So I came here. Please help me, thanks! Attached below is the screenshot of the "border" This is my code for Contentview ContentView.swift Please help asap, as the project is due i a few days. Thanks!
Topic: UI Frameworks SubTopic: SwiftUI
Replies
2
Boosts
0
Views
125
Activity
Jun ’25
hidesBottomBarWhenPushed does not work on iOS 26
Since iOS 26, hidesBottomBarWhenPushed no longer works. We have numerous screens in our app which depend on being able to extend content to the bottom of the screen, and this feels like a bug. Consider this example, running the exact same code across iOS 18 and iOS 26. On iOS 18, pushing the button pushes a view controller and the tab bar disappears, on iOS 26, however, pushing the view controller does not hide the tab bar. I've filed this as FB18543961 and attached the sample project.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
2
Boosts
0
Views
205
Activity
Jul ’25
How remove AppIntent dialog programmatically?
When the perform method of my AppIntent returns the custom view's dialog, and after I click the "Click Test" button, my app will be launched, but this dialog does not close. How can I close it? struct QuestionResultView: View { var body: some View { VStack { if #available(iOS 17.0, *) { Button(role:.cancel, intent: OpenAppIntent()) { Text("Click Test") } } }.frame(height: 300) } } struct OpenAppIntent : AppIntent { static let title: LocalizedStringResource = "Open my app" static let openAppWhenRun: Bool = true static let isDiscoverable: Bool = false; @MainActor func perform() async throws -> some IntentResult { return .result() } } struct OpenPhotoRecognizing: AppIntent { static let title: LocalizedStringResource = "Read photo" static let description = IntentDescription("") static let openAppWhenRun: Bool = false func perform() async throws -> some IntentResult & ShowsSnippetView & ProvidesDialog{ return .result(dialog: "Demo Test") { DemoResultView() } } }
Topic: UI Frameworks SubTopic: SwiftUI
Replies
0
Boosts
0
Views
84
Activity
May ’25
Tipkit for VisionOS (TabView, etc.)
I am trying to create a user flow where I can guide the user how to navigate through my app. I want to add a tip on a TabView that indicates user to navigate to a specific tab. I have seen this work with iOS properly but I am a little lost as VisionOS is not responding the same for .popoverTip etc. Any guidance is appreciated!
Replies
0
Boosts
0
Views
225
Activity
Jul ’25
Crash/Glitch when using setViewControllers(_:animated:) with UIHostingController and .refreshable in SwiftUI
Introduction Hello, As part of our ongoing migration to SwiftUI, we are currently managing navigation using UIKit. Our SwiftUI views are embedded in UIHostingController instances and pushed or presented via UINavigationController. We’ve encountered an issue that causes either a UI glitch on iOS 18 or a crash on iOS 17 when using the .refreshable modifier in a SwiftUI view that is added to a UINavigationController via setViewControllers(_:animated:). To reproduce the issue, we’re using the following simple SwiftUI view: struct TestView: View { var body: some View { List { ForEach(0...100, id: \.self) { Text("Number: \($0)") } } .refreshable { // No action needed — the presence of this modifier alone triggers the issue } } } Problematic Scenario The following code causes the issue: class ViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let initialNav = self.navigationController let hostingController = UIHostingController(rootView: TestView()) let newNav = UINavigationController() // This causes a freeze (iOS 18) or crash (iOS 17) newNav.setViewControllers([hostingController], animated: true) initialNav?.present(newNav, animated: true) } } After presenting the navigation controller, our app is freezing on iOS 18 or crashing on iOS 17. Working scenario When using pushViewController(_:animated:), the issue does not occur: class ViewController: UIViewController { override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) let initialNav = self.navigationController let hostingController = UIHostingController(rootView: TestView()) let newNav = UINavigationController() // This works without issue newNav.pushViewController(hostingController, animated: true) initialNav?.present(newNav, animated: true) } } Conclusion We would like to better understand the root cause of this behavior. While using pushViewController is a viable workaround, there are scenarios where we must rely on setViewControllers, and currently, that approach breaks the experience or crashes the app. Is this a known issue, or are we missing something about how UIHostingController interacts with .refreshable in this context? Thanks for your time — we look forward to any insights you can share.
Replies
2
Boosts
0
Views
247
Activity
May ’25
URL in scene openURLContexts does not exist
I'm trying to update an old iOS app to use the UIScene architecture, and I've run into a problem I'm hoping somebody can help me fix. When I try to share a file with my app by AirDrop from another device, the URL that I'm getting from the urlContexts argument does not exist on the device. Here's the code I'm using in my SceneDelegate class to get things going: func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) { guard let url = URLContexts.first?.url else { os_log("URL in %@ is nil", #function) return } // check that it's the proper file type guard url.pathExtension == fileExtension.replacingOccurrences(of: ".", with: "") else { return } ... } When I set a breakpoint after populating the url property, checking its existence in the Xcode Console reveals the enclosing folder does not exist: (lldb) po url.path /private/var/mobile/Library/Mobile Documents/com~apple~CloudDocs/Downloads/Seattle Times 2025-04-30 10.dbsud (lldb) po FileManager.default.fileExists(atPath: URL(filePath: "/private/var/mobile/Library/Mobile Documents").path) true (lldb) po FileManager.default.fileExists(atPath: URL(filePath: "/private/var/mobile/Library/Mobile Documents/com-apple-CloudDocs/Downloads").path) false (lldb) po FileManager.default.fileExists(atPath: URL(filePath: "/private/var/mobile/Library/Mobile Documents/com-apple-CloudDocs/").path) false So when I try to process the file at the provided URL, it fails of course. Any ideas on how I can fix this? This is happening while running the code on an iPad with iOS 18.5 from Xcode 16.4. If it makes a difference, the AirDrop is originated from an iPhone 16 Pro also running iOS 18.5.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
2
Boosts
0
Views
143
Activity
Jul ’25
Best Way to Help Users Diagnose iOS App Crashes with No UI Feedback
Hi all, We're working on an iOS application and would like to improve our ability to diagnose failures - especially in scenarios where the app crashes before it can present any UI to the user. A few specific questions: In case of an exception or crash, is there a way to log the issue so the user (or our support team) can understand the cause of the failure? If the app crashes abruptly (e.g., due to a runtime exception or crash during launch), is there a recommended way to persist error information before the process terminates? Are there Apple-supported mechanisms (like crash reporting tools or APIs) we can integrate that would help us capture such issues? What’s the best practice for enabling support teams to assist users based on crash reports - especially for crashes that happen before any user interaction? Our goal is to make sure users aren't left in the dark if the app fails to start, and to allow us to deliver timely updates or support based on the cause of the crash. Thanks in advance for your guidance!
Topic: UI Frameworks SubTopic: General Tags:
Replies
0
Boosts
0
Views
118
Activity
May ’25
Tesflight and Firebase Auth issues on AppResume
I am working on my app and encountering issues when promoting my app to TestFlight, after I download the app on testflight on my device I am able to log in, however if I minimize the app and try to re-open it again, I get a blank screen, after that, I have tried removing app and reinstalling but no sucess there. I have compiled the app in release mode in xcode directly (Scheme > Release) and was able to run the app normally and no isues observed in logm only when promoted to testflight for testing App stack: Flutter (built using latest Flutterflow build 6.0.34) Firebase backend
Topic: UI Frameworks SubTopic: General
Replies
0
Boosts
0
Views
136
Activity
Jul ’25
How to achieve a pure backdrop blur effect without predefined tint color in SwiftUI / UIKit?
Hi everyone, I’m currently trying to create a pure backdrop blur effect in my iOS app (SwiftUI / UIKit), similar to the backdrop-filter: blur(20px) effect in CSS. My goal is simple: • Apply a Gaussian blur (radius ~20px) to the background content • Overlay a semi-transparent black layer (opacity 0.3) • Avoid any predefined color tint from UIBlurEffect or .ultraThinMaterial, etc. However, every method I’ve tried so far (e.g., .ultraThinMaterial, UIBlurEffect(style:)) always introduces a built-in tint, which makes the result look gray or washed out. Even when layering a black color with opacity 0.3 over .ultraThinMaterial, it doesn’t give the clean, transparent-black + blur look I want. What I’m looking for: • A clean 20px blur effect (like CIGaussianBlur) • No color shift/tint added by default • A layer of black at 30% opacity on top of the blur • Ideally works live (not a static snapshot blur) Has anyone achieved something like this in UIKit or SwiftUI? Would really appreciate any insights, workarounds, or libraries that can help. Thanks in advance! Ben
Replies
3
Boosts
0
Views
222
Activity
Jun ’25
Glitch on buttons in all types of OS of Apple ecosystem
as a beta tester I am trying to explore the OS on multiple platforms like iO, iPadOS, MacOS, WatchOS. While on trying to use beta 1 have few issues and reported to Apple with analytics as I do for better improvements. But, in beta 2 there is an issue of glitches on UI. This also tried to report. But, while am trying record screen I can not see in that video after the screen record. But, in reality I can see that glitch with eyes. as everyone know without evidence we can not report the same with tickets properly and they also can not resolve the issues. It’s affecting on all types of OS platforms of Apple buttons and search positions etc. one more thing I absorbed is while am trying use overlay player and browse the safari or any apple developer apps which are full screen the devices are freezing and not responding and after hard restart those are starting after 10mins. As per my knowledge. Those are going through the memory overflow issue.
Replies
0
Boosts
0
Views
212
Activity
Jul ’25