All of these issues appear when the search controller is set on the view controller's navigationItem and the search controller's searchBar has its scopeButtonTitles set.
So far the following issues are affecting my app on iOS/iPadOS 26 as of beta 7:
When the scopeBarActivation of UISearchController is set to .onSearchActivation, the preferredSearchBarPlacement of the navigationItem is set to .integratedButton, and the searchBarPlacementAllowsToolbarIntegration is set to false (forcing the search icon to appear in the nav bar), on both iPhones and iPads, the scope buttons never appear. They don't appear when the search is activated. They don't appear when any text is entered into the search bar. FB19771313
I attempted to work around that issue by setting the scopeBarActivation to .manual. I then show the scope bar in the didPresentSearchController delegate method and hide the scope bar in the willDismissSearchController. On an iPhone this works though the display is a bit clunky. On an iPad, the scope bar does appear via the code in didPresentSearchController, but when any scope bar button is tapped, the search controller is dismissed. This happens when the app is horizontally regular. When the app on the iPad is horizontally compact, the buttons work but the search bar's text is not correctly aligned within the search bar. Quite the mess really. I still need to post a bug report for this issue. But if issue 1 above is fixed then I don't need this workaround.
When the scopeBarActivation of UISearchController is set to .onSearchActivation, the preferredSearchBarPlacement of the navigationItem is set to .stacked, and the hidesSearchBarWhenScrolling property of the navigationItem is set to false (always show the search bar), and this is all used in a UITableViewController, then upon initial display of the view controller on an iPhone or iPad, you are unable to tap on the first row of the table view except on the very bottom of the row. The currently hidden scope bar is stealing the touches. If you activate and then cancel the search (making the scope bar appear and then disappear) then you are able to tap on the first row as expected. The initially hidden scope bar also bleeds through the first row of the table. It's faint but you can tell it's not quite right. Again, this is resolved by activating and then canceling the search once. FB17888632
When the scopeBarActivation of UISearchController is set to .onSearchActivation, the preferredSearchBarPlacement of the navigationItem is set to integrated or .integratedButton, and the toolbar is shown, then on iPhones (where the search bar/icon appears in the toolbar) the scope buttons appear (at the top of the screen) the first time the search is activated. But if you cancel the search and then activate it again, the search bar never appears a second (or later) time. On an iPad the search bar/icon appears in the nav bar and you end up with the same issue as #1 above. FB17890125
Issues 3 and 4 were reported against beta 1 and still haven't been fixed. But if issue 1 is resolved on iPhone, iPad, and Mac (via Mac Catalyst), then I personally won't be affected by issues 2, 3, or 4 any more (but of course all 4 issues need to be fixed). And by resolved, I mean that the scope bar appears and disappears when it is supposed to each and every time the search is activated and cancelled (not just the first time). The scope bar doesn't interfere with touch events upon initial display of the view controller. And there are no visual glitches no matter what the horizontal size class is on an iPad.
I really hope the UIKit team can get these resolved before iOS/iPadOS 26 GM.
UIKit
RSS for tagConstruct and manage graphical, event-driven user interfaces for iOS or tvOS apps using UIKit.
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
Under iPadsOS 26.0 and 26.1, if a view controller is presented with a presentation style of fullScreen or pageSheet, and the view controller is setup with a UISearchController that has obscuresBackgroundDuringPresentation set to true, then when cancelling the search the view controller is being dismissed when it should not be.
To replicate, create a new iOS project based on Swift/Storyboard using Xcode 26.0 or Xcode 26.1. Update ViewController.swift with the following code:
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
view.backgroundColor = .systemBackground
title = "Root"
navigationItem.rightBarButtonItems = [
UIBarButtonItem(title: "Full", primaryAction: .init(handler: { _ in
self.showModal(with: .fullScreen)
})),
UIBarButtonItem(title: "Page", primaryAction: .init(handler: { _ in
self.showModal(with: .pageSheet)
})),
UIBarButtonItem(title: "Form", primaryAction: .init(handler: { _ in
self.showModal(with: .formSheet)
})),
]
}
private func showModal(with style: UIModalPresentationStyle) {
let vc = ModalViewController()
let nc = UINavigationController(rootViewController: vc)
// This triggers the double dismiss bug when set to either pageSheet or fullScreen.
// If set to formSheet then it works fine.
// Bug is only on iPad with iPadOS 26.0 or 26.1 beta 2.
// Works fine on iPhone (any iOS) and iPadOS 18 as well as macOS 26.0 (not tested with other versions of macOS).
nc.modalPresentationStyle = style
self.present(nc, animated: true)
}
}
Then add a new file named ModalViewController.swift with the following code:
import UIKit
class ModalViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
title = "Modal"
view.backgroundColor = .systemBackground
setupSearch()
}
private func setupSearch() {
let sc = UISearchController(searchResultsController: UIViewController())
sc.delegate = self // Just for debugging - being set or not does not affect the bug
sc.obscuresBackgroundDuringPresentation = true // Critical to reproducing the bug
navigationItem.searchController = sc
navigationItem.preferredSearchBarPlacement = .stacked
}
// When the search is cancelled by tapping on the grayed out area below the search bar,
// this is called twice when it should only be called once. This happens only if the
// view controller is presented with a fullScreen or pageSheet presentation style.
// The end result is that the first call properly dismisses the search controller.
// The second call results in this view controller being dismissed when it should not be.
override func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) {
print("dismiss ViewController")
// Set breakpoint on the following line
super.dismiss(animated: flag, completion: completion)
}
}
extension ModalViewController: UISearchControllerDelegate {
func willDismissSearchController(_ searchController: UISearchController) {
print("willDissmissSearchController")
}
func didDismissSearchController(_ searchController: UISearchController) {
print("didDismissSearchController")
}
}
Build and run the app on a simulated or real iPad running iPadOS 26.0 or 26.1 (beta 2). A root window appears with 3 buttons in the navbar. Each button displays the same view controller but with a different modalPresentationStyle.
Tap the Form button. This displays a modal view controller with formSheet style. Tap on the search field. Then tap on the grayed out area of the view controller to cancel the search. This all works just fine. Dismiss the modal (drag it down).
Now tap either the Page or Full button. These display the same modal view controller with pageSheet or fullScreen style respectively. Tap on the search field. Then tap on the grayed out area of the view controller to cancel the search. This time, not only is the search cancelled, but the view controller is also dismissed. This is because the view controller’s dismiss(animated:completion:) method is being called twice.
See ViewController.swift for the code that presents the modal. See ModalViewController.swift for the code that sets up the search controller. Both contain lots of comments.
Besides the use of fullScreen or pageSheet presentation style to reproduce the bug, the search controller must also have its obscuresBackgroundDuringPresentation property set to true. It’s the tap on that obscured background to cancel the search that results in the double call to dismiss. With the breakpoint set in the overloaded dismiss(animated:completion:) function, you can see the two stack traces that lead to the call to dismiss. When presented as a formSheet, the 2nd call to dismiss is not being made.
This issue does not affect iPadOS 18 nor any version of iOS on iPhones. Nor does it affect the app using Mac Catalyst on macOS 26.0 (untested with macOS 15 or 26.1).
In short, it is expected that cancelling the search in a presented view controller should not also result in the view controller being dismissed.
Tested with Xcode 26.1 beta 2 and Xcode 26.0. Tested with iPadOS 26.1 beta 2 (real and simulated) and iPadOS 26.0 (simulated).
A version of this post was submitted as FB20569327
All system colors are displayed incorrectly on the popover view.
Those are the same views present as a popover in light and dark mode.
And those are the same views present as modal.
And there is also a problem that when the popover is presented, switching to dark/light mode will not change the appearance. That affected all system apps.
The following screenshot is already in dark mode.
All those problem are occured on iOS 26 beta 3.
There is a serious usability issue with PHPickerViewController in a UIKit app running on macOS 26 via Mac Catalyst when the Mac Catalyst interface is set to “Scaled to Match iPad”. Mouse click and other pointer interactions do not take place in the correct position. This means you have to click in the wrong position to select a photo and to close the picker. This basically makes it unusable.
To demonstrate, use Xcode 26 on macOS 26 to create a new iOS app project based on Swift/Storyboard. Then update ViewController.swift with the following code:
import UIKit
import PhotosUI
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
var cfg = UIButton.Configuration.plain()
cfg.title = "Photo Picker"
let button = UIButton(configuration: cfg, primaryAction: UIAction(handler: { _ in
self.showPicker()
}))
button.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(button)
NSLayoutConstraint.activate([
button.centerXAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerXAnchor),
button.centerYAnchor.constraint(equalTo: view.safeAreaLayoutGuide.centerYAnchor),
])
}
private func showPicker() {
var config = PHPickerConfiguration()
config.selectionLimit = 10
config.selection = .ordered
let vc = PHPickerViewController(configuration: config)
vc.delegate = self
self.present(vc, animated: true)
}
}
extension ViewController: PHPickerViewControllerDelegate {
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
print("Picked \(results.count) photos")
dismiss(animated: true)
}
}
Then go to the "Supported Destinations" section of the project target. Add a "Mac (Mac Catalyst)" destination. Then under the "Deployment Information" section, make sure the "Mac Catalyst Interface" setting is "Scaled to Match iPad".
Then build and run the app on a Mac (using the Mac Catalyst destination) with macOS 26.0.1. Make sure the Mac has a dozen or so pictures in the Photo Library to fully demonstrate the issue. When the app is run, a simple screen appears with one button in the middle. Click the button to bring up the PHPickerViewController. Now try to interact with the picker interface. Note that all pointer interactions are in the wrong place on the screen. This makes it nearly impossible to choose the correct photos and close the picker.
Quit the app. Select the project and go to the General tab. In the "Deployment Info" change the “Mac Catalyst Interface” setting to “Optimize for Mac” and run the app again. Now the photo picker works just fine.
If you run the app on a Mac running macOS 15 then the photo picker works just fine with either “Mac Catalyst Interface” setting.
The problem only happens under macOS 26.0 (I do not have macOS 26.1 beta to test) when the “Mac Catalyst Interface” setting is set to “Scaled to Match iPad”. This is critical for my app. I cannot use “Optimize for Mac”. There are far too many issues with that setting (I use UIStepper and UIPickerView to start). So it is critical to the usability of my app under macOS 26 that this issue be resolved.
It is expected that PHPickerViewController responds correctly to pointer events on macOS 26 when running a Mac Catalyst app set to “Scaled to Match iPad”.
A version of this has been filed as FB20503207
I want to set a sublayer to a UIButton's layer, using a Glass or Prominent Glass configuration, setting the strokeColor property acting as the border to a UIButton's bounds.
The main issue I'm facing is not being able to follow the button's bounds when it changes as it expands on touch down.
Is there an expected pattern for applying sublayers to a UIButton and make it follow UIButton's bounds as it changes during interactions?
I work on a universal app that targets both iPhone and iPad. Our iPad app currently requires full screen. When testing on the latest iPadOS 26 beta, we see the following warning printed to the console:
Update the Info.plist: 1) `UIRequiresFullScreen` will soon be ignored. 2) Support for all orientations will soon be required.
It will take a fair amount of effort to update our app to properly support presentation in a resizable window. We wanted to gauge how urgent this change is. Our testing has shown that iPadOS 26 supports our app in a non-resizable window.
Can someone from Apple provide any guidance as to how soon “soon” is? Will UIRequiresFullScreen be ignored in iPadOS 26? Will support for all orientations be required in iPadOS 26?
Hey all in iOS26.1 i seem to be getting a bunch of Constraint errors when setting the rightBarButtonItem leftBarButtonItem.
Unable to simultaneously satisfy constraints.
Probably at least one of the constraints in the following list is one you don't want.
Try this:
(1) look at each constraint and try to figure out which you don't expect;
(2) find the code that added the unwanted constraint or constraints and fix it.
(Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSAutoresizingMaskLayoutConstraint:0x6000021a2a30 h=--& v=--& _TtCC5UIKit19NavigationButtonBar15ItemWrapperView:0x13d84c080.width == 0 (active)>",
"<NSLayoutConstraint:0x6000021a1cc0 _TtCC5UIKit19NavigationButtonBar15ItemWrapperView:0x13d84c080.leading == _UIButtonBarButton:0x106cd3ed0.leading (active)>",
"<NSLayoutConstraint:0x6000021a1d10 H:[_UIButtonBarButton:0x106cd3ed0]-(0)-| (active, names: '|':_TtCC5UIKit19NavigationButtonBar15ItemWrapperView:0x13d84c080 )>",
"<NSLayoutConstraint:0x6000021a19f0 'IB_Leading_Leading' H:|-(2)-[_UIModernBarButton:0x106cc80b0] (active, names: '|':_UIButtonBarButton:0x106cd3ed0 )>",
"<NSLayoutConstraint:0x6000021a1a40 'IB_Trailing_Trailing' H:[_UIModernBarButton:0x106cc80b0]-(2)-| (active, names: '|':_UIButtonBarButton:0x106cd3ed0 )>"
)
Will attempt to recover by breaking constraint
<NSLayoutConstraint:0x6000021a1a40 'IB_Trailing_Trailing' H:[_UIModernBarButton:0x106cc80b0]-(2)-| (active, names: '|':_UIButtonBarButton:0x106cd3ed0 )>
Make a symbolic breakpoint at UIViewAlertForUnsatisfiableConstraints to catch this in the debugger.
The methods in the UIConstraintBasedLayoutDebugging category on UIView listed in <UIKitCore/UIView.h> may also be helpful.
Curious if im setting something wrong, or maybe i can just ignore these (granted they are annoying in my logs) This wasnt happening in iOS 26.0
Topic:
UI Frameworks
SubTopic:
UIKit
I have a UITableView with multiple screens worth of cells and the height of the cells vary. At a certain point in the user's workflow, I want to prevent a specific cell from being scrolled out of view. I want it to allow it to scroll from the top of the screen to the bottom but not out of view.
I'm trying to solve this by updating the tableView.contentInset property with the following logic...
let visibleContentHeight = tableView.bounds.height
var insetTop = (cell.frame.origin.y - visibleContentHeight)
insetTop = (insetTop < 0) ? 0 : -insetTop
var insetBottom = tableView.contentSize.height - (cell.frame.origin.y + cell.frame.height + visibleContentHeight)
insetBottom = (insetBottom < 0) ? 0 : -insetBottom
tableView.contentInset = UIEdgeInsets(top: insetTop, left: 0, bottom: insetBottom, right: 0)
This doesn't seem to work exactly right. When scrolling, the cell's top/bottom doesn't line up with the view's top/bottom. And the difference between those margins is not consistent.
Printing out some the raw values, it looks like the cell's frame.origin sometimes changes as well as tableView.contentSize.height. I assume the system is using tableView.estimatedRowHeight to calculate the table's content height for the cells that are not loaded, so that's probably another factor.
Is setting contentInset not the way to do this? Is there another way? Is there an error in my math/logic? I must be missing something. Any help is appreciated.
Thanks.
Topic:
UI Frameworks
SubTopic:
UIKit
I have a few view controllers in a large UIKit application that previously started showing content right below the bottom of the top navigation toolbar.
When testing the same code on iOS 26, these same views have their content extend under the navigation bar and toolbar. I was able to fix it with:
if #available(iOS 26, *, *) {
self.edgesForExtendedLayout = [.bottom]
}
when running on iOS 26. I also fixed one or two places where the main view was anchored to self.view.topAnchor instead of self.view.safeAreaLayoutGuide.topAnchor.
Although this seems to work, I wonder if this was an intended change in iOS 26 or just a temporary bug in the beta that will be resolved.
Were changes made to the safe area and edgesForExtendedLayout logic in iOS 26? If so, is there a place I can see what the specific changes were, so I know my code is handling it properly?
Thanks!
Topic:
UI Frameworks
SubTopic:
UIKit
We have a UICollectionView whose cells have custom context menu highlight previews.
In the delegate method collectionView(_:contextMenuConfiguration:highlightPreviewForItemAt:), we build a UITargetedPreview whose custom view contains some action buttons.
Up until iOS 18, our setup has been working perfectly. But since iOS 26, the custom view is not responding to touches. When the user taps one of its buttons, the context menu gets dismissed as if the touch was outside of the custom view.
Is there any UICollectionView-related API change in version 26?
I am trying to understand if what I am seeing is expected behavior or not with the following UIKit components.
1.I have a view controller "A" embedded in a navigation controller (part of a multi-step flow). Large titles are active on this navigation controller.
In this view controller "A", I have a container view that contains another view controller "B" (I want to reuse the contents of B in other flows)
Inside view controller "B" I have a UICollectionView using a diffable data source.
When you load view controller "A" it appears to work fine. My collection view loads data, I see a nice list and when I scroll it...
... the expectation is it scrolls inside it's container and has no impact on the parent controller "B"
However, the navigation bar and title in "A" reflect the content offset of the collection view. Scroll a couple lines, the large title turns small and centered on top. If I turn off large title, I still see the background color of the navigation bar change as it would if you were scrolling a view directly inside controller "A" without the container view.
Am I supposed to be manually capturing the gesture recognizer in B and somehow preventing the gesture to bubble up to A? It seems like strange behavior to have to correct. Any suggestions?
Thanks!
I've a QLPreviewController in the detail/secondary section of a UISplitViewController and when the user swipes down, it dismisses the entire split view.
Is there a way to prevent this?
Setting up UITabAccessory via setBottomAccessory(_:animated:) causing recursion internally on iPhone Air which is leading into a crash.
Sharing crash log & feedback below...
crashlog.crash
crash-feedback.json
Hi! I am learning Swift and UIKit for work. I am trying to automate using a pickerWheel in VisionOS, but since .adjust(toValue: ) was removed in VisionOS's API, I am absolutely struggling to find a way to set a pickerWheel to a specific value.
Currently, my solution is to calculate the amount of times I would need to increment/decrement the wheel to get from the current value to the desired value, then do so one at a time. However, this currently does not work, as .accessibilityIncrement() and .accessibilityDecrement() do not work, and .swipeUp() and .swipeDown() go too far. What can I do?
Note: I am not a frontend engineer, so while solutions may exist that involve changes to the frontend, I would much rather try and get the frontend we do have to work as is.
In our project, we are now using UIScene, and when click InputText to pull up Keyboard, and when rotate the device, the Keyboard does not update:
how can we fix this issue?
Hello,
this is very weird. I have an app where I use UIDocumentPickerViewController(forOpeningContentTypes: [.folder]) to let the users access to directories that are in the sandbox of other apps. It's been working since iOS 13.
On the beta versions of iOS and iPadOS 26.1 (betas 3 and 4), the second time the UIDocumentPickerViewController is presented, it becomes unresponsive, with a spinning wheel in the top right corner where the "Open" button should be.
I have absolutely no clue what the issue could be. It doesn't seem to be a widespread issue, but I have also no idea on how to find the origin and fix it.
As far as I can tell from the debugger, this line is executed:
DispatchQueue.main.async {
rootVC?.present(self.documentPicker, animated: true, completion: nil)
}
and then nothing else happens.
Topic:
UI Frameworks
SubTopic:
UIKit
Hi everyone,
I'm encountering an unexpected behavior with modal presentations in UIKit. Here’s what happens:
I have UIViewControllerA (let’s call it the "orange" VC) pushed onto a UINavigationController stack.
I present UIViewControllerB (the "red" VC, inside its own UINavigationController as a .formSheet) modally over UIViewControllerA.
After a short delay, I pop UIViewControllerA from the navigation stack.
Issue:
After popping UIViewControllerA, the modal UIViewControllerB remains visible on the screen and in memory. I expected that dismissing (popping) the presenting view controller would also dismiss the modal, but it stays.
Expected Behavior:
When UIViewControllerA (orange) is popped, I expect the modal UIViewControllerB (red) to be dismissed as well.
Actual Behavior:
The modal UIViewControllerB remains on screen and is not dismissed, even though its presenting view controller has been removed from the navigation stack.
Video example: https://youtube.com/shorts/sttbd6p_r_c
Question:
Is this the expected behavior? If so, what is the recommended way to ensure that the modal is dismissed when its presenting view controller is removed from the navigation stack?
Code snippet:
class MainVC: UIViewController {
private weak var orangeVC: UIViewController?
override func viewDidLoad() {
super.viewDidLoad()
self.view.backgroundColor = .blue
let dq = DispatchQueue.main
dq.asyncAfter(deadline: .now() + 1) { [weak self] in
let vc1 = UIViewController()
vc1.view.backgroundColor = .orange
vc1.modalPresentationStyle = .overCurrentContext
self?.navigationController?.pushViewController(vc1, animated: true)
self?.orangeVC = vc1
dq.asyncAfter(deadline: .now() + 1) { [weak self] in
let vc2 = UIViewController()
vc2.view.backgroundColor = .red
vc2.modalPresentationStyle = .formSheet
vc2.isModalInPresentation = true
let nav = UINavigationController(rootViewController: vc2)
if let sheet = nav.sheetPresentationController {
sheet.detents = [.medium()]
}
self?.orangeVC?.present(nav, animated: true)
dq.asyncAfter(deadline: .now() + 1) { [weak self] in
self?.navigationController?.popViewController(animated: true)
}
}
}
}
}
Thank you for your help!
our app support silent push, and we use below code to get if app is launched by silent push:
if let remoteNotification = launchOptions?[UIApplication.LaunchOptionsKey.remoteNotification] as? [AnyHashable: Any],
let aps = remoteNotification["aps"] as? [AnyHashable: Any],
let contentAvailable = aps["content-available"] as? Int,
contentAvailable == 1 {
isSilentNotification = true
}
when app is launch and call:
application(_:didFinishLaunchingWithOptions:)
but when migrate to UIScene, the launchOptions is always nil, and we can not get to know if app is launched by silent push;
I read the develop doc:
it says:
If the app supports scenes, this is nil.
Continue using UIApplicationDelegate's application(_:didReceiveRemoteNotification:fetchCompletionHandler:) to process silent remote notifications after scene connection.
but the time for method calling
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
id too late.
So except in didReceiveRemoteNotification method calling:
application(_:didReceiveRemoteNotification:fetchCompletionHandler:)
are there any other ways to obtain the silent push flag when app is launch and has not didReceiveRemoteNotification call back.
Good day!
Have anyone experienced sudden crashes increase cause by CALayerInvalidGeometry · CALayer position contains NaN: [nan 5] that gets set via -[AVMobileGlassVolumeControlsView layoutSubviews]?
94% of crashes belong to iOS 26.0.1, while rest to 26.0. What's weird, though, is that it is caused by some AVKit internal logic and cant' understand how to track it down, neither how to reproduce.
Stack trace looks as follows:
0 CoreFoundation +0xc98c4 ___exceptionPreprocess
1 libobjc.A.dylib +0x317c0 _objc_exception_throw
2 CoreFoundation +0x1548d0 +[NSException raise:format:]
3 QuartzCore +0x909b4 CA::Layer::set_position(CA::Vec2<double> const&, bool)
4 QuartzCore +0x2af294 -[CALayer setPosition:]
5 UIKitCore +0xe9fc18 -[UIView _backing_setPosition:]
6 UIKitCore +0x18f6158 -[UIView setCenter:]
7 UIKitCore +0x1eb704 0x188b5e704 (0x188b5e5f4 + 272)
8 UIKitCore +0x1eb56c 0x188b5e56c (0x188b5e4f0 + 124)
9 UIKitCore +0x18fd318 -[UIView(Geometry) _resizeWithOldSuperviewSize:]
10 CoreFoundation +0x1514c ___NSARRAY_IS_CALLING_OUT_TO_A_BLOCK__
11 CoreFoundation +0xdd18c -[__NSArrayM enumerateObjectsWithOptions:usingBlock:]
12 UIKitCore +0x18fc6dc -[UIView(Geometry) resizeSubviewsWithOldSize:]
13 UIKitCore +0x18fabd0 -[UIView(Geometry) setFrame:]
14 AVKit +0x1b5a88 -[AVMobileGlassVolumeControlsView layoutSubviews]
15 UIKitCore +0x27074 0x18899a074 (0x188999d3c + 824)
16 UIKitCore +0x27b34 0x18899ab34 (0x18899ab14 + 32)
17 UIKitCore +0x190df64 -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
18 QuartzCore +0xac9a4 CA::Layer::perform_update_(CA::Layer*, CALayer*, unsigned int, CA::Transaction*)
19 QuartzCore +0x8f2f8 CA::Layer::update_if_needed(CA::Transaction*, unsigned int, unsigned int)
20 UIKitCore +0x57b0 -[UIView(Hierarchy) layoutBelowIfNeeded]
21 AVKit +0x1b6634 ___74-[AVMobileGlassVolumeControlsView _updateVolumeFluidSliderEmphasizedScale]_block_invoke
22 UIKitCore +0x1b3e58 -[UIViewPropertyAnimator _runAnimations]
23 UIKitCore +0x19025f0 +[UIView(Animation) _performWithState:trackingIdentifier:duration:delay:animations:]
24 UIKitCore +0x83a650 ___49-[UIViewPropertyAnimator startAnimationAsPaused:]_block_invoke_4
25 UIKitCore +0x83a460 ___49-[UIViewPropertyAnimator startAnimationAsPaused:]_block_invoke
26 UIKitCore +0x83a210 -[UIViewPropertyAnimator startAnimationAsPaused:]
27 AVKit +0x1b6574 -[AVMobileGlassVolumeControlsView setEmphasized:]
28 AVKit +0x127510 ___64-[AVMobileGlassControlsViewController _animateVolumeEmphasisTo:]_block_invoke
29 UIKitCore +0x1b3e58 -[UIViewPropertyAnimator _runAnimations]
30 UIKitCore +0x83a590 ___49-[UIViewPropertyAnimator startAnimationAsPaused:]_block_invoke_3
31 UIKitCore +0x83a460 ___49-[UIViewPropertyAnimator startAnimationAsPaused:]_block_invoke
32 UIKitCore +0x83a514 ___49-[UIViewPropertyAnimator startAnimationAsPaused:]_block_invoke_2
33 UIKitCore +0x839e60 -[UIViewPropertyAnimator _setupAnimationTracking:]
34 UIKitCore +0x83a260 -[UIViewPropertyAnimator startAnimationAsPaused:]
35 AVKit +0x127480 -[AVMobileGlassControlsViewController _animateVolumeEmphasisTo:]
36 AVKit +0x12ea2c ___56-[AVMobileGlassControlsViewController _observationSetup]_block_invoke_5
37 AVKit +0xcbcd0 ___106-[AVObservationController startObservingNotificationForName:object:notificationCenter:observationHandler:]_block_invoke
38 CoreFoundation +0x519ec ___CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
39 CoreFoundation +0x51ab0 ____CFXRegistrationPost_block_invoke
40 CoreFoundation +0x5190c __CFXRegistrationPost
41 CoreFoundation +0x520ac __CFXNotificationPost
42 Foundation +0x94fc2c -[NSNotificationCenter postNotificationName:object:userInfo:]
43 AVKit +0x1b9bd8 -[AVSystemVolumeController _postNotificationForNameIfFullyInitialized:userInfo:]
44 AVKit +0x1b9dc0 -[AVSystemVolumeController setVolume:shouldShowHUD:]
45 AVKit +0x1b965c ___69-[AVSystemVolumeController _handleSystemVolumeDidChangeNotification:]_block_invoke
46 AVKit +0x1b8da4 -[AVSystemVolumeController _performOnMainThread:]
47 AVKit +0x1b95c0 -[AVSystemVolumeController _handleSystemVolumeDidChangeNotification:]
48 CoreFoundation +0x51a00 ___CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__
49 CoreFoundation +0x51ab0 ____CFXRegistrationPost_block_invoke
50 CoreFoundation +0x5190c __CFXRegistrationPost
51 CoreFoundation +0x520ac __CFXNotificationPost
52 Foundation +0x94fc2c -[NSNotificationCenter postNotificationName:object:userInfo:]
53 MediaExperience +0x1039b0 ___76+[AVSystemControllerCommon postNotificationOnMainQueue:notification:object:]_block_invoke
54 MediaExperience +0x6b64 ___MXDispatchAsync_block_invoke
55 libdispatch.dylib +0x1ad8 __dispatch_call_block_and_release
56 libdispatch.dylib +0x1b7e8 __dispatch_client_callout
57 libdispatch.dylib +0x38b20 __dispatch_main_queue_drain.cold.5
58 libdispatch.dylib +0x10ec4 __dispatch_main_queue_drain
59 libdispatch.dylib +0x10e00 __dispatch_main_queue_callback_4CF
60 CoreFoundation +0x6b51c ___CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
61 CoreFoundation +0x1dd10 ___CFRunLoopRun
62 CoreFoundation +0x1cc40 __CFRunLoopRunSpecificWithOptions
63 GraphicsServices +0x1494 _GSEventRunModal
64 UIKitCore +0xa9dd8 -[UIApplication _run]
65 UIKitCore +0x4eb08 _UIApplicationMain
66 TuneIn Radio +0x1b318 main (main.m:28:22)
67 dyld +0x4e24 start
We have received several cases that our app can not display uitableview cell in iOS26, but users said that they can select cells with single tab and the uitableview didselectcell delegate can response!
I have reported a feedback but no response. Does anyone have the same bugs with me?
You guys can see that the page is blank, I have a video a user sent to me can proved that he can select cell with gesture.
We cannot reproduce the bug and don't konw how to fixed, we think this is the bug with iOS26, so here for some help. This bug block our distribution of new version(support iOS26)
This is the feedback https://feedbackassistant.apple.com/feedback/20677046