title: Swift 3 - override initializer for UINavigationController to set rootviewcontroller
body: <p>I'm using Swift 3 to override an init method that initializes my Navigation Controller with a rootviewcontroller (and set the rootviewcontroller delegate to self).  But, I'm getting the following error:</p>
  
  <blockquote>
    <p>Incorrect argument label in call (have 'rootViewController:', expected
    'coder:')</p>
  </blockquote>
  
  <pre><code>class NavigationController: UINavigationController, RootViewControllerDelegate {
  
      let rvc = RootViewController()
  
      convenience init() {
          self.init(rootViewController: rvc) // Incorrect argument label in call (have 'rootViewController:', expected 'coder:')
          self.rvc.delegate = self
      }
  
      required init?(coder aDecoder: NSCoder) {
          super.init(coder: aDecoder)
      }
  }
  </code></pre>
  
  <p>Can somebody explain what I'm doing wrong please?  I initially tried using </p>
  
  <blockquote>
    <p>override func init()</p>
  </blockquote>
  
  <p>but Xcode ultimately had me convert that to </p>
  
  <blockquote>
    <p>convenience init()</p>
  </blockquote>