В моем представлении содержимого есть NavigationView, а также несколько подпредставлений, которые правильно отображаются до и после отображения модального окна. Я также показываю диаграмму с поворотом в альбомную ориентацию.
Проблема, с которой я сталкиваюсь, заключается в том, что я показываю свои настройки в модальном режиме, а пользователь поворачивает его вбок, а затем обратно. Я ожидаю, что настройки продолжат отображаться (с учетом ландшафта view), а базовое представление останется прежним, когда я закрою настройки.
Я вижу ошибку в том, что ContentView NavigationView, похоже, не имеет связи с предыдущим стеком навигации, и моя панель навигации и заголовок возвращаются изменено.
var body: some View {
Group {
if orientation.isLandScape, !isShowingSettingsView {
GraphView()
} else {
NavigationView {
ZStack (alignment: .topTrailing){
VStack() {
ResultsView()
MultiPicker()
.frame(height: 250)
TabBarView
}
}
.navigationBarTitle("App Title")
}
}
}
Настройки запускаются из TabBarView
private var TabBarView: some View {
HStack{
Button(action: {
self.isShowingSettingsView = true
}) {
Image(systemName: "slider.horizontal.3")
.font(Font.system(.title))
}.sheet(isPresented: $isShowingSettingsView, onDismiss: {self.isShowingSettingsView = false})
{
SettingsView(isPresented: self.$isShowingSettingsView )
.environmentObject(self.state)
.environmentObject(self.orientation)
}
Есть ли способ «приостановить» обновления в Contentview до тех пор, пока настройки не будут закрыты, или есть причина, по которой мой Стек навигации ломается при изменении ориентации?
Спасибо за помощь!
Изменить: вот репо, демонстрирующее проблему https://github.com/wassupdoc/RotationApp