в SecondViewController вы устанавливаете ....
let svc = ViewController()
svc.delegateVariable = self
Это просто создает объект класса ViewController()
и затем вы устанавливаете делегата.Поэтому, когда объект.после завершения области видимости, память объекта будет автоматически увеличена.
Поток должен выглядеть следующим образом ....
Создать объект Viewcontroller в SecondViewController и установить делегата
let vc = self.storyboard?.instantiateViewController(withIdentifier: "ViewController") as! ViewController
vc.delegateVariable = self
Затем вставьте контроллер представления в стек навигации.
self.navigationController?.pushViewController(svc, animated: true)
Реализуйте метод делегирования testDelegate
в SecondViewController
func testFunction(string1: String, string2: String) {
print(string1+string2)
}
func math(a:Int, b:Int) {
}
РЕДАКТИРОВАТЬ
Окончательный код SecondViewController будет ...
import UIKit
class SecondViewController: UIViewController , testDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func btn(_ sender: Any) {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "ViewController") as! ViewController
vc.delegateVariable = self
self.navigationController?.pushViewController(svc, animated: true)
}
//MARK:- TestDelegate Methods
func testFunction(string1: String, string2: String) {
print(string1+string2)
}
func math(a:Int, b:Int) {
print(a+b)
print(a-b)
print(a*b)
}
}