Open
Description
How I can updated selected State if I'm navigating to view (presented TabBar), but not from TabBar, like from button inside of another view, or using NavigationLink in another view.
Thank you
View with TabBar
struct GeneralView View {
enum Item: Int, Tabbable {
case home = 0
case letters
case heritage
case bookmarks
case third
var icon: String {
switch self {
case .letters: return "textformat"
case .heritage: return "command"
case .home: return "house.fill"
case .third: return "quote.bubble"
case .bookmarks: return "bookmark.fill"
}
}
var title: String {
switch self {
case .letters: return "Letters"
case .heritage: return "Heritage"
case .home: return "Arageel"
case .third: return "Third"
case .bookmarks: return "Bookmarks"
}
}
}
@State private var selection: Item = .home
@State private var visibility: TabBarVisibility = .visible
var body: some View {
TabBar(selection: $selection, visibility: $visibility) {
LettersGridView()
.tabItem(for: Item.letters)
HeritageZineHomeView()
.environmentObject(RSSReader())
.tabItem(for: Item.heritage)
HomeView()
.tabItem(for: Item.home)
PBHomeView()
.tabItem(for: Item.third)
PBHomeView()
.tabItem(for: Item.bookmarks)
}
.tabBar(style: CustomTabBarStyle())
.tabItem(style: CustomTabItemStyle())
.ignoresSafeArea(.all)
}
}
Another View
var stickyHeaderView: some View {
HStack {
Text("Heritage").modifier(MainStoryTitle(color: "BlackDark"))
Spacer()
NavigationLink (
destination:
HeritageHomeView()
) {
Image(systemName: "arrow.up.forward")
.foregroundColor(Color("Orange"))
}
}
.padding(.horizontal, 30)
}
Metadata
Metadata
Assignees
Labels
No labels