Protocol delegate method is not called..
First View controller code
class ViewController: UIViewController,customDelegate {
var seconviewcontroller : SecondViewController = SecondViewController()
@IBOutlet weak var Label: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
seconviewcontroller.delegate = self
}
func didSelectData(_ result: String) {
Label.text = result
print("Didselect Data Call")
}
Second view controller code
import UIKit
protocol customDelegate: class {
func didSelectData(_ result: String)
}
class SecondViewController: UIViewController {
var delegate: customDelegate?
@IBOutlet weak var secondbutton: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func secondbuttonclick(_ sender: Any) {
let selectedItem = "naga"
delegate?.didSelectData(selectedItem)
}
how to call the func didSelectData pls help me
As you've already used segue for navigating between views. You can also use that for this example. I give the following as a code sample so that you can track back yourself to detect issue in your code.
First View Controller
Second View Controller
So basically in line
var seconviewcontroller : SecondViewController = SecondViewController()
is different from your pushing view controller instance.You are making a separate instance of
SecondViewController
so you have done delegate self at the time of pushing with pushes object like thatNOTE: - EVERY OBJECT HAS ITS OWN PROPERTIES