title: Is it possible to have a navigation controller handle gestures when it's embedded controller is shown without having delegate methods?
body: <p>As mentioned I would like to know if it is possible to have an underlying navigationcontroller handle gestures when showing an embedded controller, without delegate methods.</p>
  
  <p>I'm trying to make a slide out menu bar, and currently it's the embedded viewcontroller that handles the sliding out of the menu by a delegate method. I would love to make it so that the embedded viewcontroller has no idea that it's embedded in a slide out menu controller. </p>
  
  <p>For the hierachy I have ContainerViewController, this is responsible for the whole thing. ContainerViewController has a MenuViewController (this handles the slide out menu) and a NavigationController with HomeController as rootViewController. HomeController is the viewcontroller I embed in the navigationcontroller. </p>
  
  <p>I would like for the ContainerViewController to handle the UIEdgePanGesture even when the embedded HomeController is being shown. Currently HomeController has a delegate method that alerts the ContainerViewController that a UIEdgePanGesture has been made and thus opens the menu.</p>
  
  <p>I tried applying the UIPanGestureRecognizer to the NavigationControllers view instead, but to no avail.</p>
  
  <p>This is what I'd like to avoid, as there's really no reason to have every viewcontroller have responsibilities to the slideMenu, as they shouldn't know the slide menu exists in the firstplace.</p>
  
  <pre><code>protocol HomeControllerDelegate {
      func handleMenuToggle()
      func handleEdgePan(sender: UIScreenEdgePanGestureRecognizer)
  }
  
  class HomeController: UIViewController {
      @objc func handleMenuToggle() {
          //print("Menu was toggled...")
          delegate?.handleMenuToggle()
      }
  
      @objc func handleEdgePan(sender: UIScreenEdgePanGestureRecognizer) {
          //print("Menu was edgePanned...")
          delegate?.handleEdgePan(sender: sender)
      }
  }
  </code></pre>