Hi all. tell me how to transfer enum from @Binding?
How work with enum transfer to MainViewModel?
Im very bad work with enum :(
enum TabBarItems: Int, CaseIterable {
case newsView = 0
case allYouVoew
case shareView
case walletview
case chatView
case menuView
}
struct CustomTabBar: View {
var action: () -> Void
@Binding var item: TabBarItems // This is enum
var body: some View {
HStack(spacing: -5) {
ForEach(TabBarItems.allCases, id: \.self) { item in // instead of a item TabBarItems.allCases
Button(action: action) {
VStack {
item.icon
.iconSize(size: 30)
Text(item.title)
.font(Font.custom("SNS-Medium", size: 8))
.multilineTextAlignment(.center)
}
}
.frame(maxWidth: .infinity)
.foregroundColor(Color.white)
}
}
.padding(.bottom, 20)
.padding(.top, 10)
.padding(.horizontal, 5)
.background(Color.customGrey)
}
}
struct MainView: View {
@ObservedObject var MainVM: MainViewModel = MainViewModel()
var body: some View {
ZStack {
Color.clear.background(Color.white)
.edgesIgnoringSafeArea(.all)
VStack {
Header(title: "Будь в теме")
Spacer()
CustomTabBar(action: { ??? }) // toggle menu
}
.edgesIgnoringSafeArea(.bottom)
}
}
}
class MainViewModel: ObservableObject {
@Published var tabBarItems: TabBarItems = TabBarItems.newsView
}