SwiftUI NavigationStack NavigationLink одно и то же значение, несколько пунктов назначения
У меня такая модель...
struct User: Codable {
let followersCount: Int
let followingCount: Int
}
Используя NavigationStack, я хотел бы иметь возможность использовать NavigationLink на основе значения
NavigationLink(value: user.followersCount) {
Text("Followers")
}
NavigationLink(value: user.followingCount) {
Text("Following")
}
.navigationDestination(for: Int.self) { _ in
FollowersView()
}
.navigationDestination(for: Int.self) { _ in
FollowingView()
}
Поскольку оба значения являются Int. Есть ли способ отличить их друг от друга?
1 ответ
Объявите объект:
enum Link {
case followers(Int)
case following(Int)
}
затем используйте его как:
NavigationLink(value: Link.followers(user.followersCount)) {
Text("Followers")
}
NavigationLink(value: Link.following(user.followingCount)) {
Text("Following")
}
.navigationDestination(for: Link) { link in
switch link {
case let .followers(count):
FollowersView()
case let .following(count):
FollowingView()
}
}