A framework for presenting view controllers as popups of other view controllers, similar to the Apple Music and Podcasts mini-players.
LNPopupController is a UIKit framework for presenting view controllers as popup bars, similar to the mini-player interfaces in Apple Music and Podcasts. It solves the need for a native-feeling, customizable popup system that can display interactive content above other view controllers without disrupting the main app flow.
iOS developers building apps that require mini-player interfaces, contextual overlays, or bottom-docked popup content, particularly those using UIKit and targeting iOS 13+.
Developers choose LNPopupController for its deep integration with UIKit, extensive customization options, and adherence to iOS design patterns, providing a polished alternative to building custom popup systems from scratch.
A framework for presenting view controllers as popups of other view controllers, much like the Apple Music and Podcasts apps.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Seamlessly integrates with UITabBarController, UINavigationController, and custom containers, automatically docking to bottom bars and managing safe areas without disrupting app layout.
Offers granular control over bar styles (floating, compact), interaction modes, progress views, and appearance via LNPopupBarAppearance, allowing fine-tuned UI matching.
Supports complex scenarios like popup item paging with data sources, custom popup bars via subclassing, and system integrations such as context menus, pointer interactions, and accessibility.
Automatically adapts styles and behaviors for iOS 26, 17-18, and earlier versions, including support for UIDesignRequiresCompatibility, ensuring a native feel across OS releases.
Explicitly does not support legacy non-translucent tab bars and toolbars, which can cause visual artifacts, and discourages manual bottom bar property changes, leading to undefined behavior.
Features like ProMotion support require adding a specific Info.plist key (CADisableMinimumFrameDurationOnPhone), and data source mode for paging demands careful state management and routing.
The framework's robustness and dual operation modes (default vs. data source) introduce overhead for basic popup use cases, where simpler solutions might be more efficient.