使用导航链接xcode swift IOS 16



你好,我试图使用一个简单的导航链接,但似乎这种方法已经贬值与这个新的IOS更新。我试着看苹果的文档,试图修复它,但我不知道如何。在IOS 16中,我得到了以下错误:在navigationStack或navigationsplitview中使用NavigationLink(value:label:)我还将在下面添加代码。有人知道怎么正确格式化吗?

@EnvirnmentObject var viewModel: AuthViewModel()
var body: some View {
NavigationLink(destination: ProfileView(), isActive: 
$viewModel.user, label: {})
}
}

在iOS 16中导航有明显的变化。如果你的导航栏看起来像:

@State private var viewModel = ViewModel()
var body: some View {
NavigationView { 
List {
NavigationLink("User name", isActive: $viewModel.user) {
UserDetail(user: viewModel.user)
}
}
}
.navigationViewStyle(.stack) 
}

使用相反


@State private var viewModel = ViewModel()
var body: some View {
NavigationStack {
List {
NavigationLink("User Name", value: user)
}
.navigationDestination(for: User.self) { user in
UserDetail(user: user)
}
}
}

你可以在https://developer.apple.com/documentation/swiftui/migrating-to-new-navigation-types

找到更多的细节

最新更新