Skip to content
A UIPresentationController and attendant clases for iOS to present a view controller pinned to the bottom of the screen like an action sheet.
Swift Ruby Objective-C
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
BottomSheetPresentation.xcodeproj
Code Fix Objective-C integration by writing an enum in Objective-C. Sep 12, 2019
Example
LegacyExample
Shared Prepare for 0.5.3 release Sep 12, 2019
Tests Prepare for 0.5.3 release Sep 12, 2019
docs
fastlane
.gitignore
.jazzy.yaml
.ruby-version Update dependencies. Oct 2, 2019
.swiftlint.yml
BottomSheetPresentation.podspec
CHANGELOG.md
Gemfile
Gemfile.lock
LICENSE
README.md

README.md

BottomSheetPresentation

A UIPresentationController and attendant clases for iOS to present a view controller pinned to the bottom of the screen like an action sheet.

Version Documentation Carthage compatible License Platform

Installation

CocoaPods

To use BottomSheetPresentation with CocoaPods, add a dependency to your Podfile:

target 'MyAwesomeApp' do
  pod 'BottomSheetPresentation'
end

Then run pod install and use the generated .xcworkspace to open your project.

Carthage

To use BottomSheetPresentation with Carthage, add a dependency to your Cartfile:

github "Detroit-Labs/BottomSheetPresentation"

Run carthage update to build the framework. Then follow the rest of the steps in Carthage’s README to add the framework to your project, configure a Run Script build phase, etc.

Manually

To integrate BottomSheetPresentation manually into your project, drag BottomSheetPresentation.swift into your Xcode project.

Using BottomSheetPresentation

Swift

To use BottomSheetPresentation, create a BottomSheetPresentationManager and set it as the transitioningDelegate of the view controller you want to present, then set the modalPresentationStyle of the view controller to .custom.

let manager = BottomSheetPresentationManager() // Save this reference somewhere
let viewControllerToPresent = 
viewControllerToPresent.transitioningDelegate = manager
viewControllerToPresent.modalPresentationStyle = .custom

present(viewControllerToPresent, animated: true, completion: nil)

Objective-C

BottomSheetPresentation also works with Objective-C:

BottomSheetPresentationManager *manager = [[BottomSheetPresentationManager alloc] init];

UIViewController *viewControllerToPresent = …;
viewControllerToPresent.transitioningDelegate = manager;
viewControllerToPresent.modalPresentationStyle = UIModalPresentationCustom;

[self presentViewController:viewControllerToPresent
                   animated:YES
                 completion:NULL];

Requirements

To correctly compute the height of the presented view controller, it must either satisfy Auto Layout constraints for a height using systemLayoutSizeFitting(UIView.layoutFittingCompressedSize) or have a non-zero preferredContentSize.

You can’t perform that action at this time.