2017-02-19 11 views
0

Я хочу показать предупреждающее сообщение в моем TableView (класс UITableViewController), когда мое приложение запустилось. Я создал функцию в другом классе UIViewController. Это моя функция:функции вызова в разных классах

class AlertViewController: UIViewController { 

    func showAlert(titleText: String, messageText: String) { 
     let alertController = UIAlertController(title: titleText, message: messageText, preferredStyle: .alert) 
     self.present(alertController, animated: true, completion: nil) 
     let okAction = UIAlertAction(title: "Ok", style: .default) { (action: UIAlertAction) in } 
     let cancelAction = UIAlertAction(title: "Cancel", style: .default) { (action: UIAlertAction) in } 

     alertController.addAction(okAction) 
     alertController.addAction(cancelAction) 
    } 
} 

Тогда я вызываю эту функцию в другом классе:

class NewTableViewController: UITableViewController { 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let new = AlertViewController() 
     new.showAlert(titleText: "How is going?", messageText: "Have a nice day!") 

, но когда я начинаю мое приложение, это предупреждающее сообщение не появляется. Как я могу это решить ?? Большое спасибо за помощь!! }

ответ

0

Чтобы показать предупреждение, вы создаете два контроллера. Сначала, AlertViewController, а затем UIAlertController. Вы пытаетесь показать UIAlertController от экземпляра AlertViewController, но этот контроллер не отображается!

Для решения этой проблемы мы полностью удалим AlertViewController. Вместо этого мы будем использовать расширение и мы будем показывать предупреждение от контроллера, который на самом деле изображено:

extension UIViewController { 

    func showAlert(titleText: String, messageText: String) { 
     let alertController = UIAlertController(title: titleText, message: messageText, preferredStyle: .alert) 

     let okAction = UIAlertAction(title: "Ok", style: .default) { (action: UIAlertAction) in } 
     let cancelAction = UIAlertAction(title: "Cancel", style: .default) { (action: UIAlertAction) in } 

     alertController.addAction(okAction) 
     alertController.addAction(cancelAction) 

     self.present(alertController, animated: true, completion: nil) 
    } 
} 

называется

self.showAlert(titleText: "How is going?", messageText: "Have a nice day!") 
+0

Отлично, спасибо !! – Stas

Смежные вопросы