İPad'de NavigationLink'in tuhaf davranışı
Uygulamamda, bir NavigationView'da gömülü NavigationLinks içeren bir Kaydırma Görünümü var. İPad'de, Navigasyon Bağlantılarına basmak tuhaf bir şeyin olmasına neden olur. Öğelerden birine ilk kez basıldığında mükemmel bir şekilde çalışır ve ayrıntılı görünümü gösterir. Diğer öğelere sonraki basışlar hiçbir şey yapmaz veya önceden basılmış öğenin ayrıntılı görünümünü gösterir. Bazen arka arkaya birkaç öğe için çalışır, ancak daha sonra tekrar donar.
Gezinme yığınında bir sorun gibi görünüyor?
Bu basitleştirilmiş örnek, iOS 13.7 çalıştıran 11 "iPad pro'daki hatayı gösterir
struct ContentView: View {
var body: some View {
NavigationView {
ScrollView {
ForEach(0..<20) { index in
NavigationLink(destination: Text("\(index)")) {
Text("\(index)")
.padding()
.frame(width: 100, height: 100)
.background(Color.green)
}
}
}
}
}
}
Yanıtlar
Evet, bir böceğe benziyor. Apple'a geri bildirimde bulunabilirsiniz.
Bu arada, burada olası bir çözüm var. Xcode 11.7 / iOS 13.7 ile test edildi
struct ContentView: View {
@State private var selection = -1
@State private var isActive = false
var body: some View {
NavigationView {
ScrollView {
ForEach(0..<20) { index in
Button(action: {
self.selection = index
self.isActive = true
} ) {
Text("\(index)")
.padding()
.frame(width: 100, height: 100)
.background(Color.green)
}
}
}
.background(NavigationLink(destination: Text("\(selection)"),
isActive: $isActive) { EmptyView() })
}
}
}