#swiftui #navigationview
#swiftui #navigationview
Вопрос:
Как я могу удалить панель навигации внутри NavigationView.Когда я использую navigation view внутри другого navigationview, он показывает мне другую панель навигации и помещает пробел из панели навигации.Как я могу решить эту проблему. Я пытался использовать navigationBarHidden или NavigationBarTitle (displaymode : .inline), но это не сработало.Он работает, когда я использую для одного NavigationView, но внутри другого NavigationView он не работает.
struct ShowCaseView : View {
var productList = ShowCaseViewModel()
@State var cancellable = Set<AnyCancellable>()
@State var productListData : ShowCaseDataResponse?
@State var isAnimating : Bool = true
@State var showCaseData : [ShowCaseData] = []
@State var isOpened : Bool = true
var body: some View {
ZStack{
NavigationView{
ScrollView {
VStack {
if productListData?.success == true {
ForEach(showCaseData , id:.id) { data in
if data.isHeaderVisible == true {
Text(data.name ?? "")
.font(.system(size: 18))
.bold()
}
ListTypeShow(data: data)
}
}
}
}
}.navigationBarTitle("",displayMode: .inline)
ActivityIndicator(isAnimating: $isAnimating)
}
.onAppear {
if isOpened == true {
getStoreIndex()
}
}
}
Комментарии:
1. Зачем вам нужны два NavigationView / s? Не уверен, что он предназначен для этого — я встречал сообщения о многих проблемах для такого случая (даже если вы исправили это). Я рекомендую использовать только один NavigationView в той же иерархии представлений, как она разработана.
2. На самом деле я использую один navigaitonView в том же представлении. Но проблема в том, что я перемещаюсь по этому представлению из другого представления, поэтому именно по этой причине он показывает мне панель навигации, поэтому, когда я попытался использовать другой NavigationView внутри этого представления, он занимает примерно 2 места на панели навигации. Причина, по которой я использую NavigationView, проста в управлении, потому что у меня так много навигации. Но если есть другой способ обойтись без использования NavigationView, я могу это использовать.
Ответ №1:
Если родительский вид ShowCaseView
уже есть NavigationView
, тогда вам не нужен другой ShowCaseView
, ie.
struct ShowCaseView : View {
var productList = ShowCaseViewModel()
@State var cancellable = Set<AnyCancellable>()
@State var productListData : ShowCaseDataResponse?
@State var isAnimating : Bool = true
@State var showCaseData : [ShowCaseData] = []
@State var isOpened : Bool = true
var body: some View {
ZStack{
// NavigationView{ // << remove this one !!
Комментарии:
1. Как я не мог об этом подумать 🙂 . Да, это внутри NavigationView. спасибо, это сработало.