A Swift library for displaying customizable popups using separate UIWindow instances.
PopupWindow is a Swift library for iOS that allows developers to create and manage popup views using a separate UIWindow. It solves the problem of popups disappearing during screen transitions by rendering them in an independent window, providing a persistent and customizable popup experience.
iOS developers building apps that require toast notifications, card-style popups, or any persistent overlay UI that should remain visible across view controller changes.
Developers choose PopupWindow for its ability to keep popups visible during navigation, its flexible customization options (like blur, margins, and animations), and its simple API for creating both top and bottom-aligned popups without managing complex view hierarchies.
PopupWindow is a simple Popup using another UIWindow 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.
Popups remain visible during screen transitions by rendering in a separate UIWindow, explicitly noted in the README as a key feature for leaving popups during navigation.
Allows customization of margins, corner radius, blur effects, and max width through PopupItem and PopupOption, enabling tailored toast and card designs as shown in the demo GIFs.
Supports dynamic content replacement and transformations with configurable duration and easing curves, demonstrated in the transform and replace methods for real-time updates.
Provides maxWidth and landscapeSize settings to adjust popup layout for orientation changes, ensuring consistent appearance in both portrait and landscape modes.
Requires calling `PopupWindowManager.shared.changeKeyWindow` to initialize, which can disrupt app state and complicate integration with other window-based features or frameworks.
Only supports toast and card view types, restricting creative popup designs compared to libraries offering modals, sheets, or custom interactive overlays.
Built entirely on UIKit, making it unsuitable for modern SwiftUI projects without additional bridging code, limiting its appeal for newer iOS development trends.