Skip to content

iOS 26 fixes: navigation bars, search bar, date picker (Preview)

Choose a tag to compare

@iosephmagno iosephmagno released this 08 Sep 13:03
· 61 commits to main since this release

Seven fixes, most of them reported through the public repo, all verified
on an iPhone running iOS 26. To get them, install the SDK again with the
install command for your system from the getting started guide, then run
dn upgrade. This time the reinstall is needed: the fixes live in the
native iOS and Android bindings, and only the latest dn replaces those
on upgrade. dn tells you the update is there on your next command.

What changed

  • The back button stays put. When a screen with a large title pushed a
    screen that used the system bar, the back button travelled in with the
    bar instead of fading in at its place. On iOS 26 the system navigation
    bar is now one bar for the whole stack, as it is in a UIKit or SwiftUI
    app: a screen that draws its own bar leaves it empty, a screen that uses
    the system bar fills it, and push and pop run the platform's own
    transition. The back button fades in place and the title slides.

  • No flash after a pop. Returning from a system-bar screen to a
    large-title screen showed the content un-blurred under the collapsed bar
    for one frame. The bar is no longer hidden after a pop, so the blur is
    continuous through the transition.

  • The search bar reports when it closes, and the title follows it.
    SearchBar has a new onClosed callback: it fires after the user leaves
    search with the platform's own control, Cancel on iOS or the back arrow
    on Android, so a "search is open" flag in your state can follow. When
    AppBar.searchBar comes and goes across rebuilds, the bar's title now
    steps aside while the pill is present and returns when you remove it, on
    both platforms; before, the title stayed under the pill and the pill
    stayed in the bar after you removed it. Cancel on iOS resets the query
    and reports that through onChanged only when there was one. The clear
    button inside the field is a text change and still reports an empty
    string.

  • A bar you return to answers taps again on iOS 26. With the one-bar
    model above, a screen that draws its own bar (a search pill, a large
    title, a custom title) could stop responding to taps in the bar after
    you pushed a screen and came back, and a second, empty capsule could
    show beside the back button during a push. The system bar now lets those
    touches through for good and draws no back button of its own on such
    screens.

  • The first search bar opens without a stall on iOS. The first
    SearchBar an app creates made UIKit build its search chrome on the
    spot, a third of a second on the tap that showed it. That cost is now
    paid at launch behind the splash screen, where the main thread is idle
    anyway, so the first Search tap is as quick as every later one.

  • The date picker's sheet fits its picker, and Done is whole on iOS 26.
    The sheet from showDatePicker showed its Done button cut off at the
    sheet's corner, and the date-and-time picker's time row could land on the
    sheet's edge the first time it opened. The picker now sits under a
    navigation bar inside the sheet, as the system's own pickers do, the
    confirm control is the system item where iOS puts it, and the sheet is as
    tall as the picker needs, every time. New: showDatePicker(confirmText:)
    labels that control on both platforms; unset, each platform shows its own
    (the checkmark capsule on iOS 26, "Done" on earlier iOS, "OK" on
    Android).

  • Bar buttons keep their capsule fitted on iOS 26. A BarButtonItem
    whose title changes on a rebuild, "Search" becoming "Close" for
    instance, now re-sizes its glass capsule to the new text instead of
    leaving the shorter title off-centre in the old one.

  • In the tool, and it comes with the reinstall: profile runs on an
    iPhone no longer hang.
    dn run --profile on an iPhone could sit on
    "Installing and launching…" for good while the app was already running,
    because the tool waited for a debugger signal that only debug builds
    send.

Nothing changes in your code unless you want onClosed or confirmText. Screens that set
systemBar: true on AppBarIOSConfig and screens with a large title now
transition together the way the platform does. iOS 18 and Android are
untouched by the navigation bar change.


Build: SDK 19d573b7668 · engine 98a127957cb5. Install or update: curl -fsSL https://cdn.dartnative.com/install.sh | sh