Не создавайте новый экземпляр let vc = CustomClass()
используйте тот, который вы передали в качестве параметра
struct Alert {
static func CustomAlert(vc: UIViewController, title: String, message: String){
var title = "Title...!"
var message = "Message..."
let myAlert = UIAlertController(title: title, message: message, preferredStyle: .alert)
myAlert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (actin) in
myAlert.dismiss(animated: true, completion: nil)
if let controller = vc as? CustomClass {
controller.GoBackToPreviousVC()
}
}))
vc.present(myAlert, animated: true, completion: nil)
}
}
И лучше использовать протокол вместо класса жесткого кода
protocol Goback {
func GoBackToPreviousVC()
}
struct Alert {
static func CustomAlert(vc: UIViewController, title: String, message: String){
var title = "Title...!"
var message = "Message..."
let myAlert = UIAlertController(title: title, message: message, preferredStyle: .alert)
myAlert.addAction(UIAlertAction(title: "Ok", style: .default, handler: { (actin) in
myAlert.dismiss(animated: true, completion: nil)
if let controller = vc as? Goback {
controller.GoBackToPreviousVC()
}
}))
vc.present(myAlert, animated: true, completion: nil)
}
}
И подтвердите свой класс с помощью тот протокол, в котором вы хотите использовать Alert
class CustomClass: UIViewController,Goback {
func GoBackToPreviousVC(){
navigationController?.popViewController(animated: true)
}
}