0
When i am pushing from home to chat screen it wont showing me bottom tabbar
i want to display it

struct MainRouterView: View {

var rootScreen:ScreensPath
@ObservedObject var router: Router<ScreensPath>

init(rootScreen:ScreensPath) {
    self.rootScreen = rootScreen
    self._router = ObservedObject(initialValue: Router<ScreensPath>(root: rootScreen))
}


var body: some View {
    RouterView(router: router) { path in
    case .tabbarScreen(let selectedTab): TabbarScreen(tabSelection: selectedTab)
    case .homeScreen: HomeScreen(homeViewModel: HomeViewModel())
    case .historyScreen: HistoryScreen(historyViewModel: HistoryViewModel())
    case .profileScreen: ProfileScreen()
    case .myQAScreen: QAScreen()
    case .chatScreen(let questionID): ChatScreen()
    }
}
struct RouterView<T: Hashable, Content: View>: View {
    
    @ObservedObject
    var router: Router<T>
    
    @ViewBuilder var buildView: (T) -> Content
    var body: some View {
        NavigationStack(path: $router.paths) {
            buildView(router.root)
                .navigationDestination(for: T.self) { path in
                    buildView(path)
                }
        }
        .environmentObject(router)
    }
}

final class Router<T: Hashable>: ObservableObject {
    @Published var root: T
    @Published var paths: [T] = []
    
    init(root: T) {
        self.root = root
    }
    
    func push(_ path: T) {
        paths.append(path)
    }
    
    func pop() {
        paths.removeLast()
    }
    
    func updateRoot(root: T) {
        self.root = root
    }
    
    func popToRoot(){
        paths = []
    }
}

struct HomeScreen: View {
    
    
    var body: some View {
        ZStack{
            
            Text("Home")
                .onTapGesture {
                    router.push(.chatScreen)
                }
        }
    }
}

When i am pushing from home to chat screen it wont showing me bottom tabbar
i want to display it
patel shahrukh
  • 556
  • 5
  • 9

0 Answers0