Offers a seamless integration of a segmented control and a page view in native SwiftUI applications. Users can navigate between pages by swiping or tapping on segments in the control. Compatible with iOS 13+ and visionOS 1+.
The following example shows a possible onboarding process. The segmented control has three segments with the labels Welcome
, Features
, and Next Steps
that correspond to three custom SwiftUI views: WelcomeView()
, FeaturesView()
, and NextStepsView()
.
import SegmentedControlPageView
@State var currentSelection: Int = 0
SegmentedControlPageView(
"Onboarding Process",
selection: $currentSelection,
labels: [
"Welcome",
"Features",
"Next Steps"
],
pages: [
WelcomeView(),
FeaturesView(),
NextStepsView()
]
)
If you'd like to use the page view without the segmented control, initialize a PageView
in your project. This will fall back to a UIKit implementation for older versions of iOS, to ensure consistency on all versions.
PageView([
WelcomeView(),
FeaturesView(),
NextStepsView()
], selection: $currentSelection)
- iOS 13.0 or later
- visionOS 1.0 or later
In Xcode go to Project -> Your Project Name -> Package Dependencies
-> Tap Plus. Insert url:
https://github.com/samdawes/SegmentedControlPageView
or add it to the dependencies
section in your Package.swift
file:
dependencies: [
.package(url: "https://github.com/samdawes/SegmentedControlPageView", .upToNextMajor(from: "1.0.0"))
]
If you prefer not to use Swift Package Manager, you can integrate manually. Put the Sources/SegmentedControlPageView
folder in your Xcode project. Make sure to enable Copy items if needed
and Create groups
.
If your app uses SegmentedControlPageView
, don't hesitate to add yours to the list!