SwiftUI - заголовок NavigationView и кнопка возврата под строкой состояния после изменения ориентации

Каждый раз, когда я переворачиваю устройство в альбомную ориентацию и обратно, верхняя часть NavigationView (включая заголовок и кнопку «Назад») обрезается под строкой состояния.

Изменить: минимальный воспроизводимый пример:

struct ContentView: View {
    var body: some View {
        NavigationView {
            ScrollView {
                VStack {
                    ForEach(0..<15) { _ in
                        Text("Filler")
                        .frame(maxWidth: .infinity)
                        .background(Color.green)
                        .padding()
                    }
                }
            }
            .navigationBarTitle("Data")
        }
    }
}

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

struct ContView: View {
    let data = ["One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen"]
    var body: some View {
        NavigationView {
            List {
                ForEach(data, id: \.self) { word in
                    NavigationLink(destination:
                        Text("Link")
                    ) {
                        Text(word)
                    }
                }
            }
            .navigationBarTitle("Data", displayMode: .large)
            .listStyle(InsetGroupedListStyle())
        }
    }
}

Вращение на главном экране:

Вращение после нажатия на строку:

Это ошибка или я что-то не так делаю?

Я также печатаю это в консоли:

2020-10-19, 09: 05: 30.613243-0700 MyAppName [43106: 5613320] Несбалансированные вызовы для перехода к началу / окончанию появления для ‹TtGC7SwiftUI19UIHostingControllerGVS_15ModifiedContentVVS_22_VariadicView_Children7EritlementSetlementGVS_Children7EritlementGVS_Children7Eritlement_Children7EritlementGVI

Версия Xcode: 12.0 (12A7209), работает на iPhone 7 Plus на iOS 14.0


person aheze    schedule 19.10.2020    source источник
comment
Привет, @aheze, у меня была такая же проблема, и я не нашел быстрого решения, я решил использовать пользовательский View как NavBar с фиксированной высотой. Это решило проблему по очереди, но я думаю, что это не лучшее решение. Проблема возникает, когда список превышает высоту представления. Если вы используете всего 5 элементов в списке, вы увидите большой заголовок при обратном повороте, но если список больше, чем высота устройства, поведение изменится, и вы увидите маленький заголовок.   -  person wazowski    schedule 25.10.2020
comment
Да, я начинаю думать, что это ошибка. На данный момент я работаю над этим, представив представление навигации в виде sheet.   -  person aheze    schedule 25.10.2020
comment
О Боже! Это происходит со мной прямо сейчас. Вы сообщили об Apple? Я наткнулся на это хакерское решение, в котором я добавил .navigationViewStyle(StackNavigationViewStyle()) в NavigationView. Это не решает проблему, но, по крайней мере, заголовок моей панели навигации не обрезан под строкой состояния.   -  person Harshil Patel    schedule 24.11.2020
comment
@Luffy На самом деле я еще не сообщил ... Я буду как можно скорее. Кажется, StackNavigationViewStyle начинает быть универсальным исправлением (также работает для предотвращение белого фона для SidebarListStyle)!   -  person aheze    schedule 24.11.2020