Динамическая навигационная ссылка SwiftUI Xcode

0

Вопрос

В моем домашнем просмотре у меня есть 2 карточки. Я создаю две новые страницы (AboutA и AboutB), которые будут связаны с каждой из этих карточек. Но если я нажму на эту карточку, я получу только предварительный просмотр первой страницы, потому что я не знаю, как настроить динамическую навигацию для каждой из них. Это в моем домашнем просмотре:

ForEach(items) { item in
    NavigationLink(destination: AboutA()) {
    CardView(item: item)
}

Для карты я создаю "данные":

struct Item: Identifiable {
    var id = UUID()
    var title: String
    var text: String
    var image: String
}

Теперь мне нужна помощь, что изменить в домашнем просмотре и что изменить на странице "данные".

Спасибо.

swift swiftui swiftui-navigationlink
2021-11-22 16:19:26
2
0

У вас есть две карты, и вы должны показать их данные в другом представлении, о котором вы звоните. Поскольку их природа схожа, я также думаю, что страница действительно похожа или даже равна. Возможно, представление " О "одинаково для обоих представлений, поэтому лучше всего создать динамическое представление "О". :

struct Item: Identifiable {
    var id = UUID()
    var title: String
    var text: String
    var image: String
}

struct ContentView: View {
    @State
    var items : [Item] = [Item(title: "A", text: "test text", image: "test image"), Item(title: "B", text: "test text", image: "test image")]
    
    var body: some View {
        NavigationView {
            ForEach(items) { item in
                NavigationLink(destination: AboutView(item : item)) {
                    Text(item.text)
                }
            }
        }
    }
}

struct AboutView : View {
    var item : Item
    var body : some View {
        Text(item.title)
    }
}

Таким образом, представление AboutView имеет одинаковую структуру для обеих карт, но оно будет заполнено правильными данными. Вы, конечно, можете добавить некоторый элемент управления, чтобы понять, что это за карта, и отредактировать что-то в представлении.

2021-11-23 08:41:10
0

Хорошо, я решил свою проблему с картой ссылок на новые страницы, но у меня возникла новая проблема :)

struct HomeView: View {
@State var show = false
var body: some View {
    NavigationView {
        ScrollView {
            ScrollView(.horizontal, showsIndicators: false) {
                HStack{
                    ForEach(items) { item in
                        NavigationLink(destination: AboutH()) {
                            CardView(item: items[0])}
                            NavigationLink(destination: Parkovi()) {
                                CardView(item: items[1])}
                                NavigationLink(destination: Rijeke()) {
                                    CardView(item: items[2])
                            }
                        }
                        
                    }
                }

Теперь у меня есть 3 карточки, которые являются ссылками на страницы, но у меня есть время в дереве в ряду одинаковых карточек :(

Какая-нибудь помощь? Спасибо.

2021-11-25 00:10:01

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................