title: Referencing another UIViewController Causes a nil pointer and creates a new object
body: <p>I am creating a calculator app in which I need to set a variable in a separate view controller from a settings page. When attempting this feat some weird things happen. First, it somehow the variable returns nil. Then, it initialized a new view controller. Yet, all the non-static variables are the same when I reopen an instance of the old view controller.</p>
  
  <p>There might be an error in my code:</p>
  
  <pre><code>func updateTag(title: String){
      switch(title){
      case "displayWithPrecisionSwitch":
          let mainViewController = storyboard?.instantiateViewController(withIdentifier: "timerViewController") as! ViewController
          mainViewController.updatePercision()
          mainViewController.correctTallyDisplay?.refresh(totalTime: mainViewController.counter.getIntegerTime(), goal: mainViewController.counter.getGoal())
          mainViewController.incorrectTallyDisplay?.refresh(totalTime: mainViewController.counter.getIntegerTime(), goal: mainViewController.counter.getGoal())
          print(mainViewController.correctTallyDisplay?.percision ?? "Warning Nil")
      default:
          print("break")
          break;
      }
  }
  </code></pre>
  
  <p>Or in the UI: enter image description here
  <a href="https://i.stack.imgur.com/OU1g1.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/OU1g1.png" alt="enter image description here"></a>
  I just need to find a way to call functions from "timerViewController".</p>