Невозможно получить root-доступ при работе с NavigationStack в SwiftUI при нажатии значка на панели вкладок.IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получить root-доступ при работе с NavigationStack в SwiftUI при нажатии значка на панели вкладок.

Сообщение Anonymous »


I'm working on implementing a pop-to-root view for my tab bar views in SwiftUI. With my current code, I can print the newValue on every tap after the first. The code works as expected but does not reset the NavigationStack for the given tab. Is there something I'm missing here?

Here is the code, it's based on a video I found for more context. Video
import SwiftUI struct TabViews: View { enum Tab { case friends, home, profile } @State private var activeTab: Tab = .home @State private var friendsStack: NavigationPath = .init() @State private var homeStack: NavigationPath = .init() @State private var profileStack: NavigationPath = .init() var body: some View { TabView(selection: tabSelection) { Group { NavigationStack(path: $friendsStack) { Text("Friends") } .tabItem { Image("FriendsTabIcon") } .tag(Tab.friends) NavigationStack(path: $homeStack) { Text("Home") } .tabItem { Image("HomeTabIcon") } .tag(Tab.home) NavigationStack(path: $profileStack) { Text("Profile") } .tabItem { Image("ProfileTabIcon") } .tag(Tab.profile) } .toolbarBackground(.visible, for: .tabBar) .toolbarBackground(.brandBackground, for: .tabBar) } } var tabSelection: Binding { return .init { return activeTab } set: { newValue in if newValue == activeTab { print(newValue) switch newValue { case .friends: friendsStack = .init() case .home: homeStack = .init() case .profile: profileStack = .init() } } activeTab = newValue } } } #Preview { TabViews() }

Источник: https://stackoverflow.com/questions/781 ... n-pressing
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»