SwiftUI navigationView в модальном представлении с `` выталкиванием '' вниз

В настоящее время у меня есть модальное представление в SwiftUI, которое содержит серию NavigationLinks для разных представлений. Однако, когда я перехожу к одному из других представлений, он сдвигает весь контент вниз, оставляя пустой лоб в верхней части представления. Как это исправить? Ниже приведен пример снимка экрана.

введите здесь описание изображения

Чтобы уточнить, есть главный вид с кнопкой, которая открывает модальное представление. Это модальное окно содержит представление навигации с рядом кнопок NavigationLink. При открытии ссылок навигации в модальном окне, то есть когда представление сдвигается вниз.


person Thomas Braun    schedule 20.11.2019    source источник
comment
Чтобы лучше понять, можете ли вы разместить код?   -  person Rohit Makwana    schedule 20.11.2019
comment
stackoverflow .com / questions / 62806762 / Это решило мою проблему.   -  person Nav Pahwa    schedule 12.01.2021


Ответы (3)


У вас большая панель навигации, попробуйте установить для navigationBar displayMode значение .inline

.navigationBarTitle(Text(""), displayMode: .inline)
person Sorin Lica    schedule 20.11.2019
comment
Я попробовал это, и хотя он вернул мои представления к нормальному центру, он добавил верхнюю панель с цветом фона, отличным от цвета представления, в котором оно было. Есть ли простой способ избежать такого поведения? - person ty1; 29.03.2020

Вероятно, это происходит потому, что представление, которое вы нажимаете из NavigationView, также заключено в NavigationView.

struct SettingsView: View {
    var body: some View {
        NavigationView {
           NavigationLink(destination: IAPView()) {
               Text("In App Purchase")
           }
       }
    }
}

Вероятно, это у вас есть в IAPView ()

struct IAPView: View {
        var body: some View {
            NavigationView { <-- this is causing it
               // your buttons here
           }
        }
    }
person Jordi Bruin    schedule 08.06.2020

В вашем представлении все еще есть пространство панели навигации по умолчанию. Вам нужно добавить оба этих двух модификатора представления.

.navigationBarTitle("")
.navigationBarHidden(true)
person Audrey Sobgou Zebaze    schedule 28.06.2020