import SwiftUI
import AVFoundation
import UIKit
struct ContentView: View {
@EnvironmentObject var home: HomeGlobal
var body: some View {
NavigationView {
NavigationLink(
destination: home.userIsLogged == "login" ? LoginView().toAnyView() : UnLoginView().toAnyView(),
label: {
Text("to next view")
})
}
}
}
struct LoginView: View {
@EnvironmentObject var home: HomeGlobal
@Environment(\.presentationMode) var mode
var body: some View {
Text("login")
.onTapGesture {
mode.wrappedValue.dismiss()
home.userIsLogged = "unlogin"
}
}
}
struct UnLoginView: View {
@EnvironmentObject var home: HomeGlobal
@Environment(\.presentationMode) var mode
var body: some View {
Text("unlogin")
.onTapGesture {
mode.wrappedValue.dismiss()
home.userIsLogged = "login"
}
}
}
extension View {
func toAnyView() -> AnyView {
AnyView(self)
}
}
HomeGlobal.swift
class HomeGlobal: ObservableObject {
// User Info
@Published var userIsLogged: String = UserDefaults.standard.string(forKey: "userIsLogged") ?? "unlogin" {
didSet {
UserDefaults.standard.set(userIsLogged, forKey: "userIsLogged")
}
}
}