NavigationLink на сегментированном стиле Picker не имеет никакого эффекта - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть следующая структура:

Picker("", selection: $accountIndex) {
    ForEach(0..<accounts.count) { index in
        NavigationLink(destination: VStack { Text("Hello") }, 
                       label: { Text(self.accounts[index].name) })
    }
}
.pickerStyle(SegmentedPickerStyle())

, но навигация не работает, потому что жест касания только изменяет выбор сегментированного средства выбора. Есть ли обходной путь для этого?

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

1 Ответ

0 голосов
/ 04 февраля 2020

Buttons и NavigationLinks не получают жест касания, когда они находятся внутри средства выбора Content.

Можно попробовать сделать Links HStack

import SwiftUI

struct NavPicker: View {
    @FetchRequest(entity: YourModel.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \YourModel.id, ascending: false)]) var objects: FetchedResults<YourModel>

    var body: some View {
        NavigationView{
        VStack{
            HStack{
                ForEach(0..<objects.count) { index in
                    NavigationLink(destination: VStack { Text("Hello \(index)") },
                            label: { Text(self.objects[index].name ?? "No name") })
                        .background(Color.white.opacity(0.5))
                        .padding(1)
                 }

            }
        }.background(Color.gray)

        }.navigationViewStyle(StackNavigationViewStyle())

    }
}

struct NavPicker_Previews: PreviewProvider {
    static var previews: some View {
        NavPicker()
    }
}

Это решение не работает с iPad DoubleColumnNavigationViewStyle().

Кажется, есть ошибка, связанная с тем, что у меня недавно было приложение, которое отскочило назад для отображения пустого экрана на iPad, и это было решено установкой стиля.

...