Awesome Open Source
Awesome Open Source


DJSemiModalViewController is a semi modal presentation dialog that grows with it´s added content. DJSemiModalViewController works for iPhone and iPad. DJSemiModalViewController mimic the design of the default NFC popup dialog.


To run the example project, clone the repo, and run pod install from the Example directory first.


DJSemiModalViewController is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod 'DJSemiModalViewController'

How to use it

@IBAction func buttonAction(_ sender: Any) {

    let controller = DJSemiModalViewController()
    controller.title = "Title"
    let label = UILabel()
    label.text = "An example label"
    label.textAlignment = .center
    controller.addArrangedSubview(view: label)

    controller.presentOn(presentingViewController: self, animated: true, onDismiss: { })

Add views to content StackView

public func addArrangedSubview(view: UIView)

public func addArrangedSubview(view: UIView, height: CGFloat)

public func insertArrangedSubview(view: UIView, at index: Int)

Presenting the ViewController

public func presentOn(presentingViewController: UIViewController, animated: Bool = true, onDismiss dismissHandler: ViewWillDismiss?)


controller.automaticallyAdjustsContentHeight = true
controller.maxWidth = 420

controller.minHeight = 200

controller.titleLabel.font = UIFont.systemFont(ofSize: 22, weight: UIFont.Weight.bold)

controller.closeButton.setTitle("Done", for: .normal)


David Jonsén


DJSemiModalViewController is available under the MIT license. See the LICENSE file for more info.


  • Make it possible to turn close methods on/off; close button, tap on background, drag gesture.


Photo by on Unsplash

Get A Weekly Email With Trending Projects For These Topics
No Spam. Unsubscribe easily at any time.
swift (6,644
ios (2,969
cocoapods (510
dialog (173
modal (100
presentation (71
uiviewcontroller (18

Find Open Source By Browsing 7,000 Topics Across 59 Categories