Я создаю приложение для рецептов и строю его следующим образом: во-первых, я создал в отдельной структуре базовый c вид с Image
в качестве фона и некоторым текстом сверху. затем я создал несколько горизонтальных ScrollViews
, в которые встроил вид этих базовых c видов. Я хочу, чтобы, когда пользователь нажимал на одно из этих представлений, он go отображал подробный экран на основе своего выбора. Для этого я встроил весь код представления с изображением и текстом внутри navigationLink
. но когда я запускаю приложение в симуляторе и нажимаю на одно из представлений, ничего не происходит.
это код представления с текстом и изображением:
NavigationLink(destination: DetailView(title: titleText)) {
ZStack {
Image(foodImageName)
.resizable()
.renderingMode(.original)
VStack {
Text(titleText)
.foregroundColor(Color.init(hex: "AAAAAA"))
.font(.system(size: 30, weight: .semibold))
Spacer()
}
}
.frame(width: 189, height: 194)
.cornerRadius(15)
.shadow(color: Color.init(hex:"000000"), radius: 7,x: 7, y: 7)
}
и это код основного вида:
struct ContentView: View {
private var spacing: CGFloat = 20
var body: some View {
NavigationView {
VStack {
Text("First Course")
.frame(height: 36)
.font(.system(size: 25, weight: .semibold))
ScrollView (Axis.Set.horizontal, showsIndicators: false){
HStack{
MenuTopicView(titleText: "Soup", foodImageName: "Soup")
MenuTopicView(titleText: "Fish", foodImageName: "Soup")
}
}.frame(height: 200)
Text("Main Course")
.frame(height: 36)
.font(.system(size: 25, weight: .semibold))
ScrollView(Axis.Set.horizontal) {
HStack {
MenuTopicView(titleText: "Steak", foodImageName: "Soup")
MenuTopicView(titleText: "Chicken", foodImageName: "Soup")
}
}
Text("Dessert")
.frame(height: 36)
.font(.system(size: 25, weight: .semibold))
ScrollView(Axis.Set.horizontal) {
HStack {
MenuTopicView(titleText: "Ice cream", foodImageName: "Soup")
MenuTopicView(titleText: "Pancakes", foodImageName: "Soup")
}
}
}
.navigationBarTitle("Recipes")
}
}
}
Кто-нибудь есть предложение о том, что я сделал не так? спасибо!