2016-04-04 14 views
0

Wenn ein Benutzer die Anwendung ohne Internetverbindung öffnet, wird ein Fenster angezeigt, das besagt, dass eine Verbindung erforderlich ist, und es gibt eine OK-Schaltfläche. Ich möchte die OK-Taste, um die Anwendung zu verlassen. Hier ist, was ich habe:Anwendung mit einem UIAlertController beenden

if !isConnectedToNetwork(){ 
    let alert = UIAlertController(title: "No Internet", message: "You need an internet connection to use this app", preferredStyle: UIAlertControllerStyle.Alert) 
    alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, handler: nil)) 
    self.presentViewController(alert, animated: true, completion: nil) 
} 

Ich werde diese verwenden, um die App zu verlassen:

UIControl().sendAction(Selector("suspend"), to: UIApplication.sharedApplication(), forEvent: nil) 

Ich weiß einfach nicht, wie sie auf die OK-Taste oben zu verbinden.

+0

Dies ist, was die 'handler' Parameter ist für in' UIAlertAction' behandeln. – rmaddy

+3

Verwenden Sie Erreichbarkeit von Apple? In diesem Fall könnten Sie eine Nachricht auf dem Bildschirm anzeigen und die Benutzerinteraktion deaktivieren. Wenn die Internetverbindung wieder hergestellt wird, können Sie die Benutzerinteraktion aktivieren und die Nachricht loswerden. In diesem Fall würde ich eher eine Kennzeichnung als eine Warnung verwenden. –

Antwort

2

Sie können, wenn der Benutzer drücken Sie OK durch den folgenden Code

alert.addAction(UIAlertAction(title: "OK", style: UIAlertActionStyle.Default, 
handler: { (action:UIAlertAction!) -> Void in 
    //after user press ok, the following code will be execute 
    NSLog("User pressed OK!!") 
})) 
4

Nicht. Apple wird dies ablehnen (wenn sie es sehen).

Informieren Sie den Benutzer einfach und fügen Sie einen "Wiederholen" -Button hinzu. Der Wiederholungsschalter sollte die Verbindung natürlich erneut prüfen.

Um die Frage tatsächlich zu beantworten, haben Sie handler: nil auf die Schaltfläche Aktion festgelegt, stattdessen können Sie tatsächlich einen Handler festlegen und es verwenden, um beliebige Logik aufzurufen, die Sie mögen.

+1

Dies beantwortet die Frage nicht wirklich. Dies ist ein guter Kommentar, aber keine Antwort auf die Frage. – rmaddy

+0

Messepunkt @rmaddy, hinzugefügt, um diesen Teil zu decken, danke – Wain

+0

Danke für die Antwort, ich habe online ein wenig geschaut, ist der Grund Apple wird dies ablehnen, dass sie es als App-Crash behandeln würde? – chrisz