ios - 如何将数据从导航栏上的右键传输到另一个 ViewController?
问题描述
我有一个带有两个按钮的导航栏:返回和添加。当我单击添加按钮时,我需要将数据(UIImage)传输到第二个视图控制器(ViewControllerFilters2)。我有“准备转场”功能,但它不起作用。当我单击“添加”时,我转到第二个控制器,但 imageView 没有图像。
我在视图控制器上还有另一个按钮“应用”,对于此按钮,此功能有效,但不适用于导航栏上的按钮。
我试图更改我的代码,但我没有太多的知识来做这件事。而且不知道,问题出在哪里。
我希望我的添加按钮执行与应用按钮相同的功能,即我想删除应用按钮并将其更改为添加按钮
override func viewDidLoad() {
super.viewDidLoad()
navigationItem.rightBarButtonItem = UIBarButtonItem(title: "✔", style: .plain, target: self, action: #selector(addTapped))
}
@objc func addTapped() {
let filterTwoController = self.storyboard?.instantiateViewController(withIdentifier: "filter2") as! ViewControllerFilters2
self.navigationController?.pushViewController(filterTwoController, animated: true)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let nextController = segue.destination as? ViewControllerFilters2
nextController?.filteredImage = imageView.image!
}
解决方案
@objc func addTapped() {
let filterTwoController = self.storyboard?.instantiateViewController(withIdentifier: "filter2") as! ViewControllerFilters2
filterTwoController.filteredImage = imageView.image!
self.navigationController?.pushViewController(filterTwoController, animated: true)
}
那应该可以解决您的问题,因为 navigationController?.pushViewController与 segue无关
推荐阅读
- python - 如何将 catboosts 原始预测分数 (RawFormulaVal) 转换为概率?
- c# - 在 set 方法/属性中验证是什么意思?
- android - setOnSeekbarChangeListener() 对我不起作用
- android - Android 9 上的 Qt 和 OpenSSL
- node.js - 如何通过电子连接到节点js服务器,编辑文件夹中的文件?
- vue.js - 从外部应用程序强制刷新 vuejs 路由器
- javascript - onsenui ons-switch 点击返回 undefined
- android - 从应用程序的另一个实例控制后台服务
- javascript - 数组减少未返回预期结果
- c - 如何在C语言中将值附加到数组