在使用通用链接时,我试图以编程方式导航到正确的屏幕。这应该在场景委托中完成,但是我很困惑如何导航到正确的视图?
我已经尝试过了,但是单击导航后出现奇怪的行为,视图会自动推送并弹出而无需我按任何东西。
class AppState: ObservableObject
{
@Published var selectedId: String?
}
这就是我在列表中使用它自动导航的方式。
NavigationLink(destination: DetailView(item: item), tag: item.id, selection: self.$appState.selectedId)
这就是我得到的:https://swiftui-lab.com/bug-navigationlink-isactive/
答案 0 :(得分:0)
没有更多代码,很难再现您的问题。
您可以根据提供的示例尝试使用此模板:
struct Item: Identifiable {
let id: Int
let text: String
}
class AppState: ObservableObject {
@Published var selectedId: Int?
let items: [Item] = [
Item(id: 0, text: "Zero"),
Item(id: 1, text: "One"),
Item(id: 2, text: "Two"),
Item(id: 3, text: "Three"),
Item(id: 4, text: "Four"),
]
}
struct ContentView: View {
@ObservedObject private var appState = AppState()
var body: some View {
NavigationView {
List(self.appState.items) { item in
NavigationLink(destination: DetailView(item: item), tag: item.id, selection: self.$appState.selectedId) {
Text(item.text)
}
}
}
}
}
struct DetailView: View {
let item: Item
var body: some View {
Text(item.text)
}
}
在Xcode 11.5,iOS 13.5中进行了测试。