A customizable iOS container view controller for displaying multiple view controllers in a horizontal scroll view.
DTPagerController is an open-source iOS container view controller written in Swift that allows developers to display multiple view controllers in a horizontally scrollable pager interface. It solves the need for creating tabbed or paged navigation within iOS apps by providing a reusable, customizable component that handles view controller management and user interaction seamlessly.
iOS developers building apps that require tabbed navigation, onboarding flows, or any interface where multiple view controllers need to be presented in a horizontally scrollable layout.
Developers choose DTPagerController for its balance of simplicity and deep customization—it works out-of-the-box with minimal code but supports custom segmented controls and extensive UI tweaks, avoiding the limitations of more rigid pager implementations.
A fully customizable container view controller to display a set of ViewControllers in a horizontal scroll view. Written in Swift.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Set up with just a few lines of code using an array of view controllers, as shown in the README's basic usage example, reducing boilerplate.
Allows extensive UI tweaks like segmented control height, fonts, colors, and scroll indicator appearance via properties such as preferredSegmentedControlHeight and font.
Supports custom segmented controls, including third-party libraries like HMSegmentedControl, by conforming to DTSegmentedControlProtocol for deep adaptability.
Offers three ways to programmatically update the selected page index with or without animation, providing flexibility in user interaction handling.
Missing native support for advanced segmented control features like image handling, as admitted in the README's example extension for HMSegmentedControl.
Integrating third-party segmented controls requires manual conformance to DTSegmentedControlProtocol and overriding methods, adding complexity compared to plug-and-play solutions.
Being a UIKit component, it doesn't seamlessly integrate with SwiftUI projects without additional bridging code, limiting use in modern iOS development.