2015-11-19 3 views
1

Мое приложение проверяет данные, полученные с разных контроллеров представления, и показывает сообщение с предупреждением, используя UIAlertViewController. Он предназначен для обслуживания устройств after IOS8. Поэтому нет необходимости беспокоиться об обработке UIAlertView.UIAlertController как общая функция для доступа к контроллерам представлений

В настоящее время у меня есть функция alert handler (как показано ниже) во всех контроллерах вида.

//MARK: Alert handler 

func alert(info:String) { 
    let popUp = UIAlertController(title: "Alert", message: info, preferredStyle: UIAlertControllerStyle.Alert) 
    popUp.addAction(UIAlertAction(title: "OK!", style: UIAlertActionStyle.Default, handler: {alertAction in popUp.dismissViewControllerAnimated(true, completion: nil)})) 
    self.presentViewController(popUp, animated: true, completion: nil) 
} 

Мне просто интересно, может ли эта функция записываться где-то один раз и может использоваться совместно с контроллерами представлений.

Если у меня будет эта функция в общем классе, нормально ли передавать экземпляр ViewController в функцию каждый раз.

Может кто-то предложить лучший способ сделать это.

Большое спасибо заранее.

+4

Вы должны написать расширение на UIViewController. Сведения о расширениях в swift см. Здесь: https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Extensions.html – beyowulf

ответ

1

Создайте новый Swift-файл.

class AlertMaker { 
func alert(info:String, viewController: UIViewController) { 
    let popUp = UIAlertController(title: "Alert", message: info, preferredStyle: UIAlertControllerStyle.Alert) 
    popUp.addAction(UIAlertAction(title: "OK!", style: UIAlertActionStyle.Default, handler: {alertAction in popUp.dismissViewControllerAnimated(true, completion: nil)})) 
    viewController.presentViewController(popUp, animated: true, completion: nil) 
} 
} 

вызовов в вашем VC:

AlertMaker().alert("Info to display", self) 
Смежные вопросы