2016-04-14 3 views
0

in meinem schnellen 2 app ich in meinem AppDelegate diesen einfachen Code eingestellt:zeigt Alarm in dem aktuellen Betrachtungs View-Controller

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

das funktioniert gut. Wenn ich meine App von Hintergrund zu Vordergrund starte (wird aktiv), wird die Druckzeile angezeigt.

aber jetzt möchte ich realisieren, um eine Warnmeldung in der tatsächlichen Viewing-Controller anzuzeigen. ein Alarm-Controller wie folgt

ich weiß, dass ich ein Setup:

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) 
} 

aber wie kann ich zeigen den Alarm Controller aus dem AppDelegate in der aktuellen View-Controller?

Antwort

0

okay, ich war schnell mit meiner Frage. Ich habe versucht und fand meine Lösung:

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

Ratet mal, was Sie suchen ist, einige Informationen in Ihrem Viewcontroller zu empfangen, wenn die Anwendung aktiv wird. Sie können dies erreichen, indem Sie die UIApplicationDidBecomeActiveNotification auf Ihrem ViewController beobachten.

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") 
    } 
} 

Hoffe das hilft.

Verwandte Themen