title: Optional Chaining vs Optional Binding: When to use which?
body: <p>While searching for a propery way to refresh the <code>UINavigationBar</code> (see: <a href="https://stackoverflow.com/questions/39066126/how-to-properly-refresh-a-uinavigationbar">How to properly refresh a UINavigationBar?</a>) I came across this question:</p>
  
  <p>This refreshes the <code>UINavigationBar</code> as intended, even though not in a clean way: </p>
  
  <pre><code>if let navigationController = self.navigationController {
      navigationController.popViewControllerAnimated(false)
      navigationController.pushViewController(self, animated: false)
  }
  </code></pre>
  
  <p>However, this pops the current view controller, but does not push it:</p>
  
  <pre><code>navigationController?.popViewControllerAnimated(false)
  navigationController?.pushViewController(self, animated: false)
  </code></pre>
  
  <p>How is this behaviour explainable?</p>