如何实例化ViewController并保留导航栏顶部的ViewController呈现?

How to instantiate ViewController and retain the navigation bar at the top of the ViewController presented?

在 TabBar 控制器中,我有多个 ViewController。我想从 ProfileTVC 访问 MediaDetailTableViewController 并在不使用 segues 的情况下将一些数据传递给它。
StoryBoard 的架构是这样的:

标签栏
1. 导航 -> NewsFeed -> MediaDetailTableViewController
2. Nav -> ProfileTVC
从 ProfileTVC 我想实例化 MediaDetailTableViewController 并将一些数据传递给它。
使用下面显示的方法传递数据,但它失去了顶部的导航栏,因此我无法返回 ProfileTVC。此外,实例化 MediaDetailTableViewController 大约需要 2 秒。

//code inside ProfileTVC
 if let selectedIndex = tableView.indexPathForSelectedRow,
        selectedIndex.section != 0 && selectedIndex.section != 1 {
 let mediaDetailTVC = storyboard?.instantiateViewController(withIdentifier: "MediaDetailTableViewController") as! MediaDetailTableViewController
    mediaDetailTVC.currentUser = currentUser
    mediaDetailTVC.media = media[selectedIndex.section]
       self.present(mediaDetailTVC, animated: true, completion: nil)
   }

按下而不是显示

self.navigationController.push(mediaDetailTVC....)

简单多了!

performSegue(withIdentifier:"MediaDetailTableViewController", sender: self)