swift - 如何实例化 ViewController 并在呈现的 ViewController 顶部保留导航栏?
问题描述
在 TabBar 控制器中,我有多个 ViewController。我想在不使用 segues 的情况下访问MediaDetailTableViewController
并将ProfileTVC
一些数据传递给它。
StoryBoard 的架构是这样的:
选项卡栏
1. Nav -> 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)
}
解决方案
PUSH 而不是现在
self.navigationController.push(mediaDetailTVC....)
推荐阅读
- reactjs - 来自 Redux 的规范化数据未显示在前端(使用反应)
- php - 通过本地主机 (XAMPP) 发送电子邮件时遇到问题
- apollo - 重构和 Apollo 查询
- drupal-8 - 在块创建drupal 8上放置块
- visual-studio - ffmpeg 使用 msys2 + VS2017 构建挂起
- spring-boot - DynamoDbMetaDataStore 的动态运动检查点
- canvas - src/app/app.module.ts(6,43) 中的错误:错误 TS2307:找不到模块 './angular-signature-pad'
- .net - IBM MQ 的网络 AMQP 客户端
- html - css定位的浏览器兼容性(chrome vs. firefox)
- mongodb - Spark:无法打开用于缓冲 Mongo 输出的临时文件