SplitView in iOS 18
Day 25: Manifesting a Split View Layout
Welcome to Day 25 of the #30DaysOfSwift series!
Split views allow you to create master-detail interfaces that are perfect for iPad, offering a way to present multiple panes of information side by side.
Step 1: Understanding the Split View Layout
In a split view, you typically have:
A sidebar (or master view) that displays a list of items.
A detail view that shows content based on the selection from the sidebar.
SwiftUI makes it easy to create this kind of layout using NavigationSplitView
.
Step 2: Building the Split View
import SwiftUI
struct SplitViewExample: View {
@State private var selectedItem: String? = "Item 1"
let items = ["Item 1", "Item 2", "Item 3"]
var body: some View {
NavigationSplitView {
// Sidebar View
List(items, id: \.self, selection: $selectedItem) { item in
Text(item)
.padding()
.frame(maxWidth: .infinity, alignment: .leading)
}
.navigationTitle("Sidebar")
} detail: {
// Detail View
if let selectedItem = selectedItem {
DetailView(selectedItem: selectedItem)
} else {
Text("Select an item")
.font(.largeTitle)
.foregroundColor(.gray)
}
}
}
}
struct DetailView: View {
let selectedItem: String
var body: some View {
VStack {
Text("Details for \(selectedItem)")
.font(.largeTitle)
.padding()
Spacer()
}
.navigationTitle("Detail")
}
}
How does it works out for you? Share your thoughts below.
Happy Coding!
Subscribe to my newsletter
Read articles from Vaibhav directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Vaibhav
Vaibhav
From product vision to pixel-perfect execution, I'm a seasoned Product Manager turned iOS App Developer, leveraging Swift and SwiftUI to craft intuitive, user-centric experiences.