Что бы я сделал, это использовал Notification
. Notification
s позволяют различным частям вашего приложения общаться друг с другом. Во-первых, добавьте наблюдателя в любой класс, в котором создан ваш контроллер предупреждений:
class myClass: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector: #selector(showAlertController), name: "ShowAlertController", object: nil)
}
@objc func showAlertController() {
//Within this function, add the code that will show the alert controller
}
}
Теперь, с любого другого контроллера представления в вашем приложении, вы можете публиковать сообщения в Notification
с именем «ShowAlertController», и это *Будет вызван метод 1007 *:
class someViewController {
//Pressing this button should make the alert controller appear
@IBAction buttonPressed(_ sender: Any) {
NotificationCenter.default.post(name: "ShowAlertController", object: nil)
}
}
Трудно сказать, что этот подход будет работать для вас, так как я не уверен в контексте, в котором используется предоставленный вами код, но при условии, что у вас есть некоторыесвоего рода содержащий контроллер представления, в котором содержатся другие контроллеры представления, тогда этот подход должен работать для вас.
В идеале вы хотели бы сделать расширение до UIViewController
, как предложил Sh_Khan, но если вам нужнов одном классе ссылочные методы из другого класса Notification
s являются одним из решений.