首页 > 解决方案 > 如何将数据从导航栏上的右键传输到另一个 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!

}

标签: iosswiftxcodeuiviewcontrolleruiimageview

解决方案


@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无关


推荐阅读