Обычно я добавляю functionX
везде, где я представляю UIAlertController, как показано ниже:
let alert = UIAlertController(title: "", message: "", preferredStyle: .alert)
let okAction = UIAlertAction(title: "ok", style: .default)
alert.addAction(okAction)
functionX(actionSheet: alert, controller: self)
self.present(alert, animated: true, completion: nil)
// or it can be
// tableviewController.present(alert, animated: true, completion: nil)
Вместо того, чтобы каждый раз вызывать functionX
, я хочу переопределить текущий метод и вызвать там functionX
. Я попытался сделать следующее:
extension UIViewController {
override func present(_ viewControllerToPresent: UIViewController, animated flag: Bool, completion: (() -> Void)? = nil) {
if (viewControllerToPresent is UIAlertController) {
functionX(actionSheet: viewControllerToPresent, controller: /* what should this be? */ )
}
super.present() //error here
}
}
Это подходящий подход? Можете ли вы помочь мне заполнить недостающие параметры?
т.е:.