У меня есть SwiftUI VStack, который находится внутри scrollView, считывателя геометрии и NavigationView, вот код:
struct RezeptList: View {
@Environment(\.colorScheme) var colorScheme: ColorScheme
@EnvironmentObject private var recipeStore: RecipeStore
@State private var searching = false
@State private var searchText = ""
@State private var showingAddRecipeView = false
var body: some View {
NavigationView{
GeometryReader { geo in
ScrollView {
SearchBar(searchText: self.$searchText, isSearching: self.$searching)
VStack(spacing: 30) {
ForEach(self.recipeStore.recipes.filter{$0.name.hasPrefix(self.searchText) || self.searchText == ""}) {recipe in
NavigationLink(destination:
RezeptDetail(recipe: recipe).environmentObject(self.recipeStore)) {
Card(rezept: recipe,width: geo.size.width - 20)
}
.buttonStyle(PlainButtonStyle())
}
.navigationBarItems(trailing: Button(action: {
self.showingAddRecipeView = true
}){
Image(systemName: "square.and.pencil")
.foregroundColor(.primary)
}
.padding()
)
}
.padding(.bottom)
.navigationBarTitle("Rezepte")
.sheet(isPresented: self.$showingAddRecipeView) {
AddRecipeView(isPresented: self.$showingAddRecipeView)
.environmentObject(self.recipeStore)
}
}
}
}
}
init() {
UINavigationBar.appearance().tintColor = UIColor.label
}
}
Но это выглядит так, независимо от количества интервалов: Изображение
Но я заметил, что когда я перемещаю модификаторы .navigationBarItems, он работает, но затем, как только вы нажимаете на navigationLink, приложение вылетает.