如何实例化ViewController并在显示的ViewController顶部保留导航栏?

时间:2018-07-31 17:46:30

标签: swift uistoryboardsegue

在TabBar控制器中,我有多个ViewController。我想从MediaDetailTableViewController访问ProfileTVC并将一些数据传递给它,而无需使用segues。
StoryBoard的架构如下:

标签栏
 1.导航-> NewsFeed-> MediaDetailTableViewController
 2.导航-> 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)
   }

2 个答案:

答案 0 :(得分:2)

按推,而不是现在

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

答案 1 :(得分:0)

简单得多!

performSegue(withIdentifier:“ MediaDetailTableViewController”,发送者:self)