2016-04-04 109 views
0

如果用戶在沒有互聯網連接的情況下打開應用程序,會彈出一個窗口,提示需要連接,並且有一個ok按鈕。我想要ok按鈕退出應用程序。以下是我有:使用UIAlertController退出應用程序

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

我會用這個來退出程序:

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

我只是不知道如何將其連接到OK按鈕的上方。

+0

這是'handler'參數是做什麼用的'UIAlertAction'確定。 – rmaddy

+3

您是否使用Apple的Reachability?如果是這樣,您可以在屏幕上顯示一條消息並禁用用戶交互。當互聯網連接回來時,您可以啓用用戶交互並擺脫消息。在這種情況下,我會使用標籤而不是警報。 –

回答

2

您可以處理在用戶按下由下面的代碼

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

不要。蘋果會拒絕這個(如果他們看到的話)。

只需通知用戶並添加一個「重試」按鈕。重試按鈕顯然應該再次檢查連接。

要真正回答問題,您當前已將handler: nil設置爲按鈕操作,而實際上您可以設置處理程序並使用它來調用您喜歡的任何邏輯。

+1

這實際上並沒有回答這個問題。這是一個很好的評論,但不是對這個問題的回答。 – rmaddy

+0

公平點@rmaddy,添加到覆蓋該部分,謝謝 – Wain

+0

感謝您的答案,我看了網上有點,是蘋果拒絕這個,他們會把它當作應用程序崩潰的原因? – chrisz