Я не вижу, когда вы пытаетесь передать данные ... у вас есть несколько способов выполнить это действие, во-первых, вы можете использовать делегирование для достижения передачи данных
protocol YourDelegate : class {
func passData(phoneNumber: String, email: String)
}
weak var delegate: YourDelegate?
@objc func longpress(sender: UILongPressGestureRecognizer) {
if sender.state == UIGestureRecognizer.State.began {
let touchPoint = sender.location(in: tbMain)
if tbMain.indexPathForRow(at: touchPoint) != nil {
let cell = tbMain.dequeueReusableCell(withIdentifier: "testCell") as! NewContactCell
print("Long press Pressed:)")
self.actionVC = self.storyboard!.instantiateViewController(withIdentifier: "ActionsViewController") as? ActionsViewController
self.delegate = self
**delegate?.passData(cell.strPhoneNumber, cell.strEmail)**
UIView.transition(with: self.view, duration: 0.25, options: [.transitionCrossDissolve], animations: {
self.view.addSubview( self.actionVC.view)
}, completion: nil)
}
}
}
class ???: UIViewController, YourDelegate {
var strPhoneNUmber : String!
var strEmail : String!
override func viewDidLoad() {
super.viewDidLoad()
print("Phone: \(strPhoneNUmber!)")
// Do any additional setup after loading the view.
}
func passData(phoneNumber: String, email: String) {
handle...
}
}
его не ясномне, если actionVC - это тот, которому вы хотите передать данные, но если это так, у вас есть экземпляр .. просто установите свойства, но я все равно рекомендую придерживаться шаблона делегирования
actionVC.strPhoneNumber = cell.strPhoneNumber
или использовать переход
self.performSegue(withIdentifier: "yourIdentifier", sender: arr[indexPath.row])
используйте команду prepare для segue, чтобы создать экземпляр для установки его свойств в соответствии с отправителем.
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
let destvc = segue.destination as? YourClass
destvc.phoneNumber = sender.phoneNumber as? String
destvc.email = sender.email as? String
}