# PopupController [](https://travis-ci.org/daisuke310vvv/PopupController) [](http://cocoapods.org/pods/PopupController) [](http://cocoapods.org/pods/PopupController) [](http://cocoapods.org/pods/PopupController) *PopupController* is a controller for showing temporary popup view.
## Installation
### CocoaPods
```
pod 'PopupController'
```
### Carthage
Future
## Usage
Before use,
Every ViewController which is added on the PopupController must conform to *PopupContentViewController* protocol.
```swift
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
```swift
PopupController
.create(self)
.show(AnyPopupViewController())
```
With some custom.
```swift
PopupController
.create(self)
.customize(
[
.Animation(.FadeIn),
.Layout(.Top),
.BackgroundStyle(.BlackFilter(alpha: 0.7))
]
)
.show(AnyPopupViewController())
```
With Handler
```swift
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
```swift
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
```
## Customization
```swift
public enum PopupCustomOption {
case Layout(PopupController.PopupLayout)
case Animation(PopupController.PopupAnimation)
case BackgroundStyle(PopupController.PopupBackgroundStyle)
case Scrollable(Bool)
case DismissWhenTaps(Bool)
case MovesAlongWithKeyboard(Bool)
}
```
## License
PopupController is available under the MIT license. See the LICENSE file for more info.