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!