Обнаружение неожиданного поведения, когда List вращается с SwiftUI - PullRequest
0 голосов
/ 25 сентября 2019

Я настроил относительно простой Список, встроенный в NavigationView, но когда я выполняю ротацию, все работает не так, как ожидалось.

На следующих снимках экрана показана последовательность событий.

Когда представление первоначально отображается на iPhone (работает под управлением iOS 13.1 17A844 )

enter image description here

Когда вид поворачивается из портретного в ландшафтный

enter image description here

Мой главный интерес здесьозначает, что кнопка «назад» исчезает.

Наконец, когда она поворачивается обратно в портрет

enter image description here

Уведомлениечто Bar Title сжался и теперь выровнен с кнопкой возврата.

Это упрощенная версия кода, который я использую для создания этих экранов:

import SwiftUI

struct ViewA: View {
    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(destination: ViewB()) {
                    Text("ViewB")
                }
                .frame(maxWidth: .infinity,
                       maxHeight: .infinity,
                       alignment: .center)
                Divider()
                NavigationLink(destination: ViewB()) {
                    Text("ViewB")
                }
                .frame(maxWidth: .infinity,
                       maxHeight: .infinity,
                       alignment: .center)
            }
            .padding(.all, 10)
            .multilineTextAlignment(.center)
            .navigationBarTitle(Text("Main blah"))

        }
    }
}

struct ViewB : View {
    private let items = ["A", "B", "C"]

    var body: some View {
        List () { [items] in
            ForEach(items.indices, id: \.self) { index in
                NavigationLink(destination: DetailView(detail:
                    Detail(title: items[index]))) {
                    Text("Blah blah")
                }
            }
        }
        .navigationBarTitle(Text("Bar Title"))
        .listStyle(GroupedListStyle())
    }
}

В идеале, яхотел бы, чтобы пользовательский интерфейс сохранял тот же внешний вид после поворота.

Для сравнения, когда я запускаю это на физическом iPad с помощью iOS 13.1 (17A844) , ведет себя как положено.

...