 
   // MARK: Initializers
 
-  public required init(images: [String], config: Config? = nil, pageDelegate: LightboxControllerPageDelegate? = nil) {
-    self.images = images
-    self.pageDelegate = pageDelegate
-
-    if let config = config {
-      LightboxConfig.sharedInstance.config = config
-    }
-    
-    super.init(nibName: nil, bundle: nil)
+  public required init(images: [String], config: Config? = nil,
+    pageDelegate: LightboxControllerPageDelegate? = nil,
+    dismissalDelegate: LightboxControllerDismissalDelegate? = nil) {
+      
+      self.images = images
+      self.pageDelegate = pageDelegate
+      self.dismissalDelegate = dismissalDelegate
+
+      if let config = config {
+        LightboxConfig.sharedInstance.config = config
+      }
+    
+      super.init(nibName: nil, bundle: nil)
   }
 
   public required init(coder aDecoder: NSCoder) {

  var images = [String]()

  public var pageDelegate: LightboxControllerPageDelegate?

  var collectionSize = CGSizeZero

  public private(set) var page = 0 {

  // MARK: - Actions
  
  func closeButtonDidTouchUpInside(sender: UIButton) {
    dismissalDelegate?.lightboxControllerDidDismiss(self)
  }
}

