title: Pass the data between the view controllers via prepare without connecting Show segue in the storyboard
body: <p>I did a show segue connection between the view controllers using code without using a storyboard. So I can not specify the segue.identifier, so I can not pass the data.</p>
  
  <p><strong>Connections between view controllers without storyboards</strong></p>
  
  <pre><code>private func tableOfContentsBtnConfig() {
      let button = UIButton(type: .custom)
      button.setImage(UIImage(named: "contents"), for: .normal)
      button.contentMode = .scaleAspectFill
      button.addTarget(self, action: #selector(clickOnButton), for: .touchUpInside)
      navigationItem.titleView = button
  }
  
  @objc func clickOnButton() {
      let chapterVC = self.storyboard?.instantiateViewController(withIdentifier: "ChapterViewController") as! ChapterViewController
  
      self.present(chapterVC, animated: true, completion: nil)
  }
  </code></pre>
  
  <p><strong>Data can not be passed</strong></p>
  
  <pre><code>override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
  
      guard let destination = segue.destination as? ChapterViewController else { return }
  
      destination.bookNo = self.bookNo
  }
  </code></pre>
  
  <p>I found through log debugging that this function does not run at all. I think it's probably because segue.identifier is not specified, how can I specify an identifier without using the storyboard? Or are there other solutions?</p>