我剛接觸swift iOS編程。我寫了一些代碼。很簡單,我想執行一個警報,然後通過「performSegueWithIdentifier」移動到另一個視圖控制器。但我得到這樣的輸出:嘗試在ViewController上呈現UIViewController,它已經呈現UIAlertController
「警告:試圖提出的UIViewController:0x7fa05b72dd60上Kilaundry.ViewController:0x7fa05b49a2c0這已經是呈現UIAlertController:0x7fa05d859d70」
我想警告這個代碼後:「NSOperationQueue .mainQueue()。addOperationWithBlock」。
爲什麼我不能執行警報,然後通過「performSegueWithIdentifier」移動到另一個視圖控制器?請幫我找出爲什麼會發生這種警告。
這是我的代碼:
if let data = data, let jsonResult = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? NSDictionary {
print(jsonResult)
Resp_code = jsonResult["Resp_code"] as? String;
Resp_message = jsonResult["Resp_message"] as? String;
if Resp_code == "01" {
NSOperationQueue.mainQueue().addOperationWithBlock {
let alert = UIAlertController(title: "Information", message:Resp_message!, preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "OK", style: .Default) { _ in })
self.presentViewController(alert, animated: true){}
self.performSegueWithIdentifier("LoginSucceed", sender: self)
}
} else {
NSOperationQueue.mainQueue().addOperationWithBlock {
let alert = UIAlertController(title: "Oops!", message:"It seems "+Resp_message!, preferredStyle: .Alert)
alert.addAction(UIAlertAction(title: "OK", style: .Default) { _ in })
self.presentViewController(alert, animated: true){}
}
}
}
你爲什麼使用NSOperation隊列?如果你想在主線程中使用它,我想你想使用dipatch_get_main_queue()。 :/ – Dershowitz123