Ios TapGestureRecognitor在另一个类中调用函数并访问第一个类的变量
当我在第一个ViewController中点击UIImageView时,我正在调用另一个类中的函数:Ios TapGestureRecognitor在另一个类中调用函数并访问第一个类的变量,ios,swift,uitapgesturerecognizer,Ios,Swift,Uitapgesturerecognizer,当我在第一个ViewController中点击UIImageView时,我正在调用另一个类中的函数: let tapGestureRecognizer = UITapGestureRecognizer(target: secondclass, action: #selector(secondclass.imageTapped(tapGestureRecognizer:))) 在第二节课中,我需要从第一个ViewController访问一些变量 如何获得对第一个ViewController的引用
let tapGestureRecognizer = UITapGestureRecognizer(target: secondclass, action: #selector(secondclass.imageTapped(tapGestureRecognizer:)))
在第二节课中,我需要从第一个ViewController访问一些变量
如何获得对第一个ViewController的引用以实现此目的
二等舱:
@objc func imageTapped(tapGestureRecognizer: UITapGestureRecognizer)
{
let tappedImage = tapGestureRecognizer.view as! UIImageView
//reference to first ViewController needed
}
然后在第二个VC中添加一个委托
weak var delegate:FirstVC?
并在第一个vc中进行配置
secondclass.delegate = self
尝试在ViewController之间使用委托
protocol ImageDelegate: class {
func didTapped()
}
class FirstVC: UIViewController, ImageDelegate {
let imageView: UIImageView!
let secondVC: SecondVC!
override func viewDidLoad() {
super.viewDidLoad()
secondVC.imageDelegate = self
}
}
class SecondVC: UIViewController {
weak var imageDelegate: ImageDelegate?
override func viewDidLoad() {
super.viewDidLoad()
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(handleTap))
}
@objc func handleTap() {
imageDelegate?.didTapped()
}
}