Steps is a navigation bar that guides users through the steps of a task. You need to use it when a given task is complicated or has a certain sequence in the series of subtasks, we can decompose it into several steps to make things easier.
Requirements
- iOS 10.0+ / tvOS 9.0+ / macOS 10.10+ / Ubuntu 14.04+
- Swift 5.0+
Installation
CocoaPods
To integrate Steps into your Xcode project using CocoaPods, specify it in your Podfile:
pod 'Steps'Swift Package Manager
You can use The Swift Package Manager to install Steps by adding the proper description to your Package.swift file:
import PackageDescription
let package = Package(
    name: "YOUR_PROJECT_NAME",
    targets: [],
    dependencies: [
        .package(url: "https://github.com/asam139/Steps.git", from: "0.2.0")
    ]
)
Next, add Steps to your targets dependencies like so:
.target(
    name: "YOUR_TARGET_NAME",
    dependencies: [
        "Steps",
    ]
),Then run swift package update.
Manually
Add the Steps project to your Xcode project
Example
struct Item {
    var title: String
    var image: Image?
}
struct ContentView: View {
    @ObservedObject private var stepsState: StepsState
    init() {
        let items = [
            Item(title: "First_", image: Image(systemName: "wind")),
            Item(title: ""),
            Item(title: "Second__", image: Image(systemName: "tornado")),
            Item(title: ""),
            Item(title: "Fifth_____", image: Image(systemName: "hurricane"))
        ]
        stepsState = StepsState(data: items)
    }
    func onCreateStep(_ item: Item) -> Step {
        return Step(title: item.title, image: item.image)
    }
    var body: some View {
        VStack(spacing: 12) {
            Steps(state: stepsState, onCreateStep:onCreateStep)
                .itemSpacing(10)
                .font(.caption)
                .padding()
            Button(action: {
                self.stepsState.nextStep()
            }) {
                Text("Next")
            }
            .disabled(!stepsState.hasNext)
            Button(action: {
                self.stepsState.previousStep()
            }) {
                Text("Previous")
            }
            .disabled(!stepsState.hasPrevious)
        }.padding()
    }
}Get involved
We want your feedback. Please refer to contributing guidelines before participating.
Thanks
Special thanks to:
- Hoping new contributors
License
Steps is released under the MIT license. See LICENSE for more information.

