Change to safe area logic on iOS 26

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!

it would be helpful to see a small test project that has the relationship between your navigation toolbar and the content view set up the same way as your real app and see if you get the same results. If so, please provide a link to that test project.

— Ed Ford,  DTS Engineer

We're having the same issue on a large project with a lot of view controllers.

We're seeing this problem happening only on iOS 26 devices. The problem has been described well by @interferon

@DTS Engineer you have to acknowledge that something got broken with the safe area in iOS 26. Your ask is a bit difficult to accomplish, since we work in large codebases with complex view controllers and complex view hierarchies.

I had a similar issue and I was able to narrow down the root cause of the issue. Setting Status bar is initially hidden to true in the Info.plist breaks the top safe area on iOS 26. I tested this on an iPhone SE (3rd generation), and the top safe area always returns 0 when the setting is true. If I set it to false, it returns 20.

On iOS versions prior to 26, this issue does not occur, they return 20 for the top safe area regardless of the Status bar is initially hidden setting.

Change to safe area logic on iOS 26
 
 
Q