Slide Over в iPadOS 15 ломает NavigationLink (SwiftUI)

У меня возникают проблемы при использовании NavigationView и NavigationLinks на iPadOS 15. В настоящее время используется бета-версия Dev для iPadOS 15.3 (19D5026g), но эта проблема у меня возникла с момента выпуска версии 15.1. Когда я использую свое приложение как обычно, все в порядке. Но когда я превращаю приложение в Slide Over, детализация работает, но когда я нажимаю «Назад» и возвращаю деталь обратно, я не могу щелкнуть NavLink (детали не отображаются). Когда я возвращаю приложение в полноэкранный режим, все в порядке. Кто-нибудь заметил что-то подобное?

Изменить: только что узнал, что разделенный экран делает то же самое.

Вот мой код:

      struct ContentView: View {
    var body: some View {
        NavigationView {
            SideBar() 
                .navigationBarTitle("SideBar")
                .toolbar {
                    ToolbarItemGroup(placement: .navigationBarTrailing) {}
//Button which opens options
                }
            
            DetailView()
                .navigationBarTitle(“Detail”, displayMode: .large)   
        }
    }
}


//SideBar:
struct SideBar: View {
    var body: some View {
        VStack{

            Spacer()

            VStack {
                NavigationLink(destination: DetailView()) {           
                        Text(“DetailView”)
                            .font(.headline)
                }
                    NavigationLink(destination: OtherDetailView()) {
                                Text("Other Detail View")
                                .font(.headline)
                }
            }
            Spacer()
        }
    }
}

//DetailView and OtherDetailView
struct DetailView: View {
    var body: some View {
        VStack {
            
            Spacer()
            
            Text("Hello World!")
            
            Spacer()
        }
        .navigationBarTitle(“Detail”)
    }
}```

Thanks for your help!

1 ответ

Некоторое время назад я сам нашел решение, поэтому решил опубликовать его здесь на случай, если кто-то столкнется с таким же поведением.

Правильный способ сделать то, что я пытался сделать, - это, по-видимому, использовать список с этим модификатором:

      .listStyle(SidebarListStyle())

Мне это показалось странным, но я не нашел другого способа добиться того, чего хотел.

Другие вопросы по тегам