title: ViewController is getting called multiple times from my rootViewController
body: <p>I am little confused about <code>UINavigationController</code> stack. 
  I am showing my <code>UIViewController("SubmitRequestViewController")</code> from my <code>rootViewController("ViewController")</code>.</p>
  
  <p>Below is my code:</p>
  
  <pre><code>let controller = SubmitRequestViewController.init(nibName: "SubmitRequestViewController", bundle: nil)
      self.navigationController?.pushViewController(controller, animated: true) 
  </code></pre>
  
  <p>Now I am just trying to come back from <code>SubmitRequestViewController</code> to my <code>rootViewController</code>. </p>
  
  <pre><code>//Home Button
  @objc fileprivate func backHome() {
      let _ = self.navigationController?.popToRootViewController(animated: true)
  }
  
  //Back Button
  @objc fileprivate func backButton() {
      let _ = self.navigationController?.popViewController(animated: true)
  }
  </code></pre>
  
  <p>If I go again to my "<code>SubmitRequestViewController</code>" its getting call twice. </p>
  
  <p>So this is going continuously. It will call multiple times if I will repeat the above steps.  </p>
  
  <p>Now what I got is :-  </p>
  
  <p><code>navigationController.viewControllers.count</code> is getting increased continuesly.  </p>
  
  <p>I am trying to pop to <code>navigationController</code> but still it's present. </p>
  
  <p>I tried this also :-  </p>
  
  <pre><code>self.navigationController?.dismiss(animated: true, completion: nil)
  </code></pre>
  
  <p>Actually I am firing a notification in my DrawerViewController class :- </p>
  
  <pre><code>//Submit Request
  else if itemArray[indexPath.row].contains("SUBMIT REQUEST") == true {
      tableView.deselectRow(at: indexPath, animated: false)
      self.dismiss(animated: true, completion: nil)
      NotificationCenter.default.post(name: Notification.Name(rawValue : AssessNowKyes.submitRequest), object: nil)
  }
  </code></pre>
  
  <p>I am calling it in my ViewControllerClass :-  </p>
  
  <pre><code>override func viewDidLoad() {
      super.viewDidLoad()
      NotificationCenter.default.addObserver(self, selector: #selector(submitRequestClicked), name: Notification.Name(rawValue : AssessNowKyes.submitRequest), object: nil)
  }
  
  //Submit Request Clicked
  @objc fileprivate func submitRequestClicked() {
      let controller = SubmitRequestViewController.init(nibName: "SubmitRequestViewController", bundle: nil)
      self.navigationController?.pushViewController(controller, animated: true)
  }
  </code></pre>
  
  <p>I am doing it. I don't know about I have to removeObserver also? Because I tried that also. It's not working.</p>