title: Function is not fired in dismiss completion block
body: <p>So I have a view controller which is dismissed when a user logs in. In the dismiss function completion block I have fired a function which should reload the next view controller. Nothing happens, blank view controller. But if I close the application when I am already logged in, then reopen it, everything loads like it should.</p>
  
  <p>So here is my login function:</p>
  
  <pre><code>func loginFunc() {
  
          if emailField.text != "" &amp;&amp; passwordField.text != "" {
  
              Auth.auth().signIn(withEmail: emailField.text!, password: passwordField.text!, completion: { (user, error) in
  
                  if user != nil {
                      // Sign In Successful
                      print("Sign In Sucessful")
                      self.dismiss(animated: true, completion: {
                          self.mainVC.starterMethod()
                      })
                  } else {
  
                      if let myError = error?.localizedDescription {
                          print(myError)
                      } else {
                          print("Error")
                      }
  
                  }
  
              })
  
          }
  
      }
  </code></pre>
  
  <p>And here is my <code>starterMethod()</code>:</p>
  
  <pre><code>func starterMethod() {
  
          ref = Database.database().reference()
  
          let userId = Auth.auth().currentUser?.uid
  
          if userId != nil {
              print("You are logged in...")
          } else {
              present(LoginController(), animated: true, completion: nil)
          }
  
          setupPicks()
          setupViewsMed()
          fetchGames()
          setNavigationBar()
          setupCircles()
  
      }
  </code></pre>
  
  <p><code>starterMethod()</code> is called in the <code>viewDidLoad</code></p>
  
  <p>I would really like to avoid <code>viewDidAppear()</code> if possible</p>