Question: I'm trying to conditionally hide a `DatePicker` in SwiftUI. However, I'm having any issue with mismatched types:

```
var datePicker = DatePicker($datePickerDate)
if self.showDatePicker {
    datePicker = datePicker.hidden()
}

```

In this case, `datePicker` is a `DatePicker<EmptyView>` type but `datePicker.hidden()` is a `_ModifiedContent<DatePicker<EmptyView>, _HiddenModifier>`. So I cannot assign `datePicker.hidden()` to `datePicker`. I've tried variations of this and can't seem to find a way that works. Any ideas?

**UPDATE**

You can unwrap the `_ModifiedContent` type to get the underlying type using it's `content` property. However, this doesn't solve the underlying issue. The `content` property appears to just be the original, unmodified date picker.

Answer: 
The simplest and most common way to hide a view is like the following:

```
struct ContentView: View {
    @State private var showText = true

    var body: some View {
        VStack {
            Button("Toggle text") {
                showText.toggle()
            }

            if showText {
                Text("Hello World!")
            }
        }
    }
}

```

This removes the `Text` view from the hierarchy when `showText` equals `false`. If you wish to have an option to preserve the space or want it as a modifier, see below.

---

I created an extension, so you can use a modifier, like so to hide the view:

```
Text("Hello World!")
    .isHidden(true)

```

Or for complete removal:

```
Text("Label")
    .isHidden(true, remove: true)

```

The extension below is also available on GitHub here if you want to use Swift Packages: [GeorgeElsham/HidingViews](https://github.com/GeorgeElsham/HidingViews).

---

Here is the code to create the `View` modifier:

I recommend you use this code in its own file (remember to `import SwiftUI`):

```
extension View {
    /// Hide or show the view based on a boolean value.
    ///
    /// Example for visibility:
    ///
    ///     Text("Label")
    ///         .isHidden(true)
    ///
    /// Example for complete removal:
    ///
    ///     Text("Label")
    ///         .isHidden(true, remove: true)
    ///
    /// - Parameters:
    ///   - hidden: Set to `false` to show the view. Set to `true` to hide the view.
    ///   - remove: Boolean value indicating whether or not to remove the view.
    @ViewBuilder func isHidden(_ hidden: Bool, remove: Bool = false) -> some View {
        if hidden {
            if !remove {
                self.hidden()
            }
        } else {
            self
        }
    }
}

```
Here is the simple way to Show/Hide view in SwiftUI.

1. Add `@State` variable:

```
@State var showLogo = false

```
2. Add condition like below:

```
VStack {
    if showLogo {
        Image(systemName: "house.fill")
            .resizable()
            .frame(width: 100, height: 100, alignment: .center)
            .foregroundColor(Color("LightGreyFont"))
            .padding(.bottom, 20)
    }
    Text("Real State App")
        .font(Font.custom("Montserrat-Regular", size: 30))
}.padding(.vertical, 25)

```
3. Change state of your @State variable to Show/Hide the view like below:

```
Button(action: {
    withAnimation{
        self.showLogo.toggle()
    }

}, label: {
    Text("Login").font(.system(size: 20, weight: .medium, design: .default))
        .frame(minWidth: 0, maxWidth: .infinity, maxHeight: 50)
        .foregroundColor(Color("BlackFont"))
        .cornerRadius(10)

})

```

[![enter image description here](https://i.stack.imgur.com/mgUdD.gif)](https://i.stack.imgur.com/mgUdD.gif)