SwiftUI Текст исчезает за панелью навигации - PullRequest
0 голосов
/ 05 апреля 2020

У меня проблема, когда мой текст скрывается за панелью навигации. Панель навигации становится видимой, когда пользователь нажимает на Настройки (или любую другую кнопку меню). Он появляется, и контент виден, но после загрузки нового представления текст исчезает за полосой. Любые решения?

Я изменяю статус видимой панели навигации с помощью .onAppear и .onDisappear видов, которые имеют уровень root. enter image description here

Код примерно такой:


struct ContentView: View {

    @State public var navBarHidden = true

    var body: some View {

        NavigationView{
            VStack{
                ZStack(alignment: .center){
                    WhiteImage().onAppear{self.navBarHidden = true} //Here only seen as white background
                    BottomButtons().onDisappear{self.navBarHidden = false}
                    ProfileInvoke().navigationBarTitle("").navigationBarHidden(self.navBarHidden)
                }
            }
        }
    }
}

//The buttons are done with such a construct

struct MenuButton: View {

    var buttonText: String
    var buttonCallView: AnyView

    var body: some View {
        NavigationLink(destination: self.buttonCallView) {
            Text(self.buttonText)
        }.padding()

    }
}

//Population of a button

MenuButton(buttonText: "My Favourites", buttonCallView: AnyView(MyFavouritesView().navigationBarTitle(Text("My Favourites"), displayMode: .inline)))


// The settings view where the title disappears 

struct SettingsView: View {

    var body: some View {
        HStack(alignment: .top){
            VStack(alignment: .leading){
                Text("General").bold()
                Divider()
                Spacer()
            }.padding()
            Spacer()
        }
    }
}

У меня такое ощущение, что это как-то связано с .onAppear и .onDisappear, где я установить статус скрытой панели навигации или нет. Точно не уверен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...