swift - SwiftUI 深度链接导航弹跳
问题描述
我已经用 SwiftUI 构建了一个深度链接模式,并且大部分时间都在工作。我遇到的唯一问题是,当我在同一个选项卡和导航堆栈中时,路由到同一选项卡中不同视图的深层链接会导致这种奇怪的弹跳效果,它导航到主选项卡,回到深层链接视图然后退出。
在主选项卡视图中我有这个代码
.onOpenURL { url in
handleDeepLink(url: url)
}
这转到选项卡,如果深层链接有效,它会触发隐藏的导航链接
NavigationLink(destination: CompanyPageView(symbol: deepLinkedCompany), isActive: $isDeepLinkingIn, label: { EmptyView() }).hidden()
这在大多数情况下都有效,但由于某种原因,如果我已经在选项卡中并在页面中的另一个导航链接中,打开一个深层链接会导致反弹。
我的导航状态如何:
class NavState: ObservableObject {
@Published var firstLevel: String? = nil
var secondLevel: String? = nil
var thirdLevel: String? = nil
}
子视图
@EnvironmentObject var navState: NavState
@Binding var deepLinkedCompany: String
VStack {
//random view stuff
NavigationLink(destination: CompanyPageView(symbol: deepLinkedCompany), tag: "hoboken" , selection: $navState.firstLevel, label: { EmptyView() }).hidden()
}
公司页面视图
@EnvironmentObject var navState: NavState
@Environment(\.presentationMode) var mode: Binding<PresentationMode>
//view stuff
.onOpenURL{url in
self.mode.wrappedValue.dismiss()
}
解决方案
推荐阅读
- webpack - 在 webpack 中连接构建的文件
- json - 在字符串列 bigquery 中查询 json
- pandas - 如何根据 Pandas 中不同列中的重复值生成重复索引
- algorithm - 在稀疏矩阵中找到最近(以曼哈顿距离为单位)的点对
- json - 这怎么可能是 JSON Schema
- python - groupby 日期并检查多列中的值是否相等
- python - 使用 flask_restful 和 flask_caching 循环导入
- javascript - 如何修复 vuejs 测试工具中的 jest window.alert 或 null 错误?
- javascript - 使用 JavaScript 从图像中读取 ICC 配置文件
- java - GetKey 方法在 dataSnapshot 中返回 null