SwiftUI 视图 onAppear 事件调用回扫手势动作
Posted
技术标签:
【中文标题】SwiftUI 视图 onAppear 事件调用回扫手势动作【英文标题】:SwiftUI view's onAppear event call on swipe back gesture action 【发布时间】:2021-06-30 17:44:10 【问题描述】:您可能知道,SwiftUI 的 .onAppear 在视图出现时被调用。
在我的应用程序中,我实现了从子视图到父视图的向后滑动手势。但是,当执行向后滑动手势时,父母的 onAppear 已经部分可见时会调用它。
所以我的问题是:我应该怎么做才能确保在父视图全部(而不是部分)出现时调用 onAppear?
【问题讨论】:
【参考方案1】:您可以在isActive
Binding 中检查 NavigationLink 的状态。这是一个使用 ProxyBinding 的示例,您可以在其中检测到 setter 中的滑动。
struct ContentView: View
@State var isActive: Bool = false
var body: some View
NavigationView
NavigationLink(
destination: Text("Destination"),
isActive: Binding<Bool>(
get:
isActive
, set:
isActive = $0
// Here you can check the status, if it is false it is fully slided back.
print($0)
),
label:
Text("Navigate")
)
.onAppear
print("appear")
【讨论】:
以上是关于SwiftUI 视图 onAppear 事件调用回扫手势动作的主要内容,如果未能解决你的问题,请参考以下文章
视图模型中的 Firestore 方法未在 SwiftUI onAppear 方法中调用
iOS14.2 SwiftUI PageTabView 会多次调用 ChildView onAppear 方法
SwiftUI解决List子项无法正确触发onAppear和onDisappear事件的问题