NavigationView {
NavigationLink {
TargetView()
} label: {
DesignedCell()
}
.onTapGesture {
let str:String = "This is onTapGesture"
print(str)
}
}
위와 같은 코드로 사용자는 DesignedCell로 요소를 만들었으며 터치하여 TargetView로 이동하려고 한다고 가정해봅시다. 여기서 개발자는 모종의 이유로 print()를 사용하던지 변수를 수정하기 위해 onTapGesture를 병행하여 사용하고 싶은 경우가 있습니다.
NavigationView 안에서는 위에서 의도한대로 작동하지 않습니다. 제가 실험해본 바로는 onTapGesture가 먼저 작용되고 Link는 작동되지 않네요.
이를 해결하기 위해서는 onTapGesture를 사용하는 것이 아니라 simultaneousGesture를 사용해야 합니다. simulatneousGesture는 아래와 같이 사용할 수 있습니다.
let newGesture = TapGesture().onEnded {
let str:String = "This is onTapGesture"
print(str)
}
NavigationLink {
~~~
} label {
~~~
}
.simultaneousGesture(newGesture)
NavigationLink {
~~~
} label {
~~~
}
.simultaneousGesture(TapGesture().onEnded {
let str:String = "This is onTapGesture"
print(str)
})'SwiftUI > 문법' 카테고리의 다른 글
| [SwiftUI] MVVM 패턴의 구성 #0 (0) | 2022.10.02 |
|---|---|
| [SwiftUI] navigationBarItems를 대체하는 ToolbarItem을 사용하는 방법 (0) | 2022.09.12 |