Dinâmica NavigationLink SwiftUI Xcode

0

Pergunta

Na minha HomeView eu tenho 2 cartões. Eu faço duas novas páginas (AboutA e AboutB) a ser vinculado a cada uma destas cartas. Mas se eu clicar sobre este cartão, eu só tenho a visualização da primeira página, pois não sei como definir a dinâmica de navegação para cada um. Esta é na minha HomeView:

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

Para Cartão de eu criar "dados":

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

Agora eu preciso de ajuda, o que muda em HomeView, e o que mudar em "dados", na página.

obrigado.

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

Você tem duas cartas e você tem que mostrar suas detalhes em outro modo de exibição, que você chama de Cerca de. Como sua natureza é semelhante, eu acho também Sobre a página é realmente semelhante ou até mesmo igual. Talvez a Cerca de Vista é o mesmo tanto para o modo de exibição, de modo a melhor coisa a fazer é criar uma dinâmica de Vista Acerca de :

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)
    }
}

Assim, o AboutView tem a mesma estrutura, tanto para o cartão, mas ele vai ser preenchido com os dados corretos. Você certamente pode adicionar um pouco de controle para compreender bruxa cartão é ele, e editar algo no modo de exibição.

2021-11-23 08:41:10
0

Ok, eu resolvi meu problema com o link do cartão para novas páginas, mas eu tenho problema novo :)

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])
                            }
                        }
                        
                    }
                }

Agora eu tenho o meu 3 cartas, que são links para páginas, mas eu tenho árvore de tempo na linha de mesma cartões :(

Qualquer ajuda? Obrigado.

2021-11-25 00:10:01

Em outros idiomas

Esta página está em outros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................