2016-04-14 3 views
0

в моем приложении скоро 2 я установил этот простой код в моем приложении делегат:показать оповещения в реальном контроллере представления просмотра

func applicationDidBecomeActive(application: UIApplication) { 
    print("HERE I AM") 
} 

это работает отлично. если я начну свое приложение с фона на передний план (станет активным), будет показана линия печати.

, но теперь я хотел бы реализовать, чтобы показать предупреждающее сообщение в реальном контроллере просмотра.

я знаю, что установка я оповещение контроллера, как это:

let alertController = UIAlertController(title: "MY TITLE", message: "MY TEXT", preferredStyle: .Alert) 

let action = UIAlertAction(title: "OK", style: .Default) { (action) in} 
alertController.addAction(action) 
self.presentViewController(alertController, animated: true, completion: nil) 
} 

но как я могу показать предупредительный контроллер из приложения делегата в самом контроллере зрения?

ответ

0

хорошо, я должен был поститься с моим вопросом. я попробовал и нашел свое решение:

var topViewController = self.window?.rootViewController 
while topViewController?.presentedViewController != nil 
    { 
    topViewController = topViewController?.presentedViewController 
    } 

let alertController = UIAlertController(title: "TITLE", message: "TEXT", preferredStyle: .Alert) 
let action= UIAlertAction(title: "OK", style: .Default) { (action) in} 
alertController.addAction(action) 

topViewController!.presentViewController(alertController, animated: true, completion: nil) 
0

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

class ViewController: UIViewController { 

    override func viewWillAppear(animated: Bool) { 
     super.viewWillAppear(animated) 

     NSNotificationCenter.defaultCenter().addObserver(self, selector: #selector(showAlert), name: UIApplicationDidBecomeActiveNotification, object: nil) 
} 

    override func viewWillDisappear(animated: Bool) { 
     super.viewWillDisappear(animated) 

     NSNotificationCenter.defaultCenter().removeObserver(self) 
    } 

    override func viewDidLoad() { 
     super.viewDidLoad() 
    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

    func showAlert() { 
     print("Show Alert") 
    } 
} 

Надеюсь, это поможет.

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