PopupController is a controller for showing temporary popup view.
Try PopupController on Appetize.io
pod 'PopupController', :git => 'https://github.com/ahmedsafadii/PopupController.git'
Future
Before use,
Every ViewController which is added on the PopupController must conform to PopupContentViewController protocol.
class AnyPopupViewController: UIViewController, PopupContentViewController {
// Do something...
private var popupSize: CGSize // define the size for showing popup view size.
// PopupContentViewController Protocol
func sizeForPopup(popupController: PopupController, size: CGSize, showingKeyboard: Bool) -> CGSize {
return popupSize
}
}
Then, show popup
PopupController
.create(self)
.show(AnyPopupViewController())
With some custom.
PopupController
.create(self)
.customize(
[
.Animation(.FadeIn),
.Layout(.Top),
.BackgroundStyle(.BlackFilter(alpha: 0.7))
]
)
.show(AnyPopupViewController())
With Handler
PopupController
.create(self)
.customize(
[
.Scrollable(false),
.DismissWhenTaps(true)
]
)
.didShowHandler { popup in
// Do something
}
.didCloseHandler { _ in
// Do something
}
.show(AnyPopupViewController())
If you use PopupController instance, do like this below
let popup = PopupController
.create(self)
.customize(
[
.Animation(.SlideUp)
]
)
.didShowHandler { popup in
// Do something
}
.didCloseHandler { _ in
// Do something
}
popup.show() // show popup
popup.dismiss() // dismiss popup
public enum PopupCustomOption {
case Layout(PopupController.PopupLayout)
case Animation(PopupController.PopupAnimation)
case BackgroundStyle(PopupController.PopupBackgroundStyle)
case Scrollable(Bool)
case DismissWhenTaps(Bool)
case MovesAlongWithKeyboard(Bool)
}
PopupController is available under the MIT license. See the LICENSE file for more info.