Advertisement
Guest User

Untitled

a guest
Aug 19th, 2019
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. import SwiftUI
  2. import Combine
  3.  
  4. class Settings: ObservableObject {
  5. @Published var hasAgreedToTermsAndConditions: Bool = false
  6. @Published var hasAgreedToPrivacyPolicy: Bool = false
  7.  
  8. @Published var isActive = false
  9. @Published var isNotActive = true
  10.  
  11. private var cancellable: AnyCancellable? = nil
  12.  
  13. init() {
  14. self.cancellable = Publishers.CombineLatest($hasAgreedToPrivacyPolicy, $hasAgreedToTermsAndConditions).map{
  15. return $0.0 && $0.1
  16. }.sink{
  17. self.isActive = $0
  18. self.isNotActive = !$0
  19. }
  20. }
  21. }
  22.  
  23. struct WelcomeSceneView: View {
  24. @ObservedObject var settings = Settings()
  25.  
  26. var body: some View {
  27. NavigationView {
  28. VStack {
  29. Image(uiImage: welcomeLogo)
  30.  
  31. Spacer()
  32.  
  33. Text("Welcome friend!".uppercased())
  34. //.font(.system(size: 55))
  35.  
  36. Toggle(isOn: $settings.hasAgreedToTermsAndConditions) {
  37. Text("I agree to the Terms and Conditions")
  38. }.toggleStyle(DefaultToggleStyle())
  39.  
  40. Toggle(isOn: $settings.hasAgreedToPrivacyPolicy) {
  41. Text("I agree to the Privacy Policy")
  42. }.toggleStyle(DefaultToggleStyle())
  43.  
  44.  
  45. // This does not compile 'Binding<Bool> is not convertible to Bool', but I cannot figure out how to create a compupted property binding using those 2 states...
  46. Text("is active: (settings.isActive.description)")
  47. NavigationLink("Can proceed", destination: SignInScene(), isActive: $settings.isActive)
  48. .hidden()
  49. NavigationLink("Can not proceed", destination: PleaseConfirmView(), isActive: $settings.isNotActive)
  50. .hidden()
  51. }.padding(30)
  52. }
  53. }
  54.  
  55. let welcomeLogo = UIImage(systemName: "headphones")!
  56. }
  57.  
  58. struct SignInScene: View {
  59. var body: some View {
  60. Text("Some sign in scene")
  61. }
  62. }
  63.  
  64. struct PleaseConfirmView: View {
  65. var body: some View {
  66. Text("Please confirm")
  67. }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement