Once You Go Back You Can't Go Back

All of a sudden NavigationLink()s in a couple of apps stopped working properly—but only on devices; it works as expected on the preview canvas and in simulators.

Versions

The problem was first noticed a few weeks back in an app but was originally dismissed as a problem on the destination page. However, the problem can be demonstrated in a trivial app, and still persists even after this week's latest batch of software updates. Haven't figured out the problem yet.

Sample code

Here's the sample code that demonstrates the problem:

import SwiftUI


struct ContentView: View {
    var body: some View {
        NavigationView {
            List {
                NavigationLink(destination: Text("This is page one.")) {
                    Text("Page One")
                }
                NavigationLink(destination: Text("This is page two.")) {
                    Text("Page Two")
                }
            }
        }
    }
}


struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

What goes wrong?

Expected behavior is the ability to navigate between the two pages—for simplicity the pages are represented by the Text() calls; the same problem exists if the pages are actually separate views.

Everything works perfectly on the Canvas and on the Simulator. On the devices (an iPhone 11 and and iPad Pro 11-inch) everything works the first time the link is followed. But if the '< Back' button is pressed and the same NavigationLink is chosen a subsequent time nothing happens. The row is highlighted, but the page never appears.

Pressing the other NavigationLink will work, but it will then exhibit the same problem if an attempt to revisit the page is made—but the other link will then start working again.

Once you go '< Back' you can't go back to the page you were just on.

Discuss?

Haven't added a commenting system to this app, and probably won't. So if you have any feedback—positive or negative—either say it via email to david@cocoacheerleaders.com or on Twitter at @CocoaCheer.