         return self
     }
 
-    fileprivate override func getPopoverViewController() -> UIViewController? {
+    public var selectedItem: CustomStringConvertible? {
+        return menu?.selectedItem
+    }
+
+    fileprivate override func makePopoverViewController() -> UIViewController? {
         guard let menu = self.menu else { return nil }
         return MenuViewController(menu: menu)
     }
 }
-
 
 public class DropDownBarButton: UIBarButtonItem {
     

    }
    
    public func popoverPresentationControllerShouldDismissPopover(_ popoverPresentationController: UIPopoverPresentationController) -> Bool {
        collapse()
        return true
    }


        if collapsed { return }
        
        guard let viewController = makePopoverViewController() else { return }

        viewController.modalPresentationStyle = .popover
        viewController.preferredContentSize = CGSize(width: 225, height: 250) // TODO: Calculate the preferred size from the actual content.
        let presentationController = viewController.popoverPresentationController!
        presentationController.delegate = self
        if let barButton = outerButton { presentationController.barButtonItem = barButton } else { presentationController.sourceView = self.imageView }
        self.viewController?.present(viewController, animated: true, completion: nil)

        popoverViewController = viewController
    }

    fileprivate func makePopoverViewController() -> UIViewController? {
        return nil
    }

