我有一个带有两个按钮的导航栏:“上一步”和“添加”。单击添加按钮时,我需要将数据(UIImage)传输到第二个View Controller(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!
}
答案 0 :(得分:2)
@objc func addTapped() {
let filterTwoController = self.storyboard?.instantiateViewController(withIdentifier: "filter2") as! ViewControllerFilters2
filterTwoController.filteredImage = imageView.image!
self.navigationController?.pushViewController(filterTwoController, animated: true)
}
那应该解决您的问题,因为navigationController?.pushViewController与
答案 1 :(得分:0)
为了解决该问题,您应该执行以下操作:
确保在情节提要板上创建了一个segue(从导航项到下一个视图控制器)。如果您不知道该怎么做,请检查this。您可以从情节提要中添加条形按钮,从而创建segue。
当前,您正在呼叫navigationController?.pushViewController
,它与segue无关(em),而您应该做的是呼叫:
self.performSegueWithIdentifier ("SecondViewController", sender: self)
答案 2 :(得分:0)
更改此:
componentDidMount() {
axios.get('api/url')
.then(response => response)
.then(
(result) => {
this.setState({
words: result.data.split('\na')
});
},
(error) => {
console.log(error)
}
)
}
对此:
@objc func addTapped() {
let filterTwoController = self.storyboard?.instantiateViewController(withIdentifier: "filter2") as! ViewControllerFilters2
self.navigationController?.pushViewController(filterTwoController, animated: true)
}
正如艾哈迈德·F(Ahmad F)所说的,您正在调用navigationController?.pushViewController,它与segue无关,因此您需要在按下视图控制器之前设置图像。