title: App crashes randomly on viewWillDisappear()
body: <p>I'm new to Swift, and I find some strange crashes in my app.</p>
  
  <p>The Fabric reports said crashes occurred in viewWillDisappear().</p>
  
  <p>I have two ViewControllers.User tap button in A viewcontroller then they move to B viewcontroller to input something, they user go back, and A get information from B.</p>
  
  <p>I use a delegate to complete this task.</p>
  
  <p>B:</p>
  
  <pre><code>class LessonNameTagTableViewController: UITableViewController {
  
  ...
  
  var delegate:PassingData?
  
  override func viewWillDisappear(_ animated: Bool) {
  
      lessonName = (tableView.cellForRow(at: IndexPath(row: 0, section: 0))?.viewWithTag(1) as! UITextField ).text!
  
      delegate?.changeLessonNameTag(name: lessonName, tag: tagColor)
      super.viewWillDisappear(animated)
  
  }
  ...
  }
  </code></pre>
  
  <p>A:</p>
  
  <pre><code>class LessonEditTableViewController: UITableViewController,PassingData {
  var lesson :Lesson?
  ...
  func changeLessonNameTag(name:String,tag:UIColor){
      self.lesson!.lessonName = name
      self.lesson!.lessonTagColor = tag
      tableView.reloadData()
  
  }
  ...
  }
  </code></pre>
  
  <p>The crash happened randomly, I've tested it on my device, and nothing happened.But others said they could repeat this crashes.</p>
  
  <p>I wonder whether I'm using delegate right or it's caused by other reasons.</p>