iPad에서 NavigationLink의 이상한 동작
Sep 08 2020
내 앱에는 NavigationView에 포함 된 NavigationLinks가 포함 된 Scrollview가 있습니다. iPad에서 NavigationLinks를 누르면 이상한 일이 발생합니다. 항목 중 하나를 처음 누르면 완벽하게 작동하며 세부 정보보기가 표시됩니다. 이후에 다른 항목을 누르면 아무 작업도 수행되지 않거나 이전에 누른 항목의 세부 정보보기가 표시됩니다. 때로는 연속 된 몇 가지 항목에 대해 작동하지만 다시 멈 춥니 다.
탐색 스택에 문제가있는 것 같습니까?
이 간단한 예제는 iOS 13.7을 실행하는 11 "iPad pro의 오류를 보여줍니다.
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)
}
}
}
}
}
}
답변
Asperi Sep 08 2020 at 23:00
예, 버그처럼 보입니다. Apple에 피드백을 제출할 수 있습니다.
한편, 가능한 해결 방법은 다음과 같습니다. Xcode 11.7 / iOS 13.7로 테스트 됨
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() })
}
}
}