如何从 UIAlertcontroller 中关闭模态 ViewController

How to dismiss modal ViewController from UIAlertcontroller

我展示了一个模式viewcontroller,用户可以在其中决定编辑或删除展示的汽车。

如果用户想删除这辆车,我会呈现一个 UIAlertController 警告样式来询问他是否真的要删除这辆车。一切正常。但是在用户选择“Yes”之后我仍然在modal viewcontroller

删除后如何关闭模态视图?

我尝试了以下代码

self.parentViewController?.dismissViewControllerAnimated(true, completion: nil)

self.navigationController?.popViewControllerAnimated(true)

在 ok Action 的关闭中,但两者都对我不起作用。 :(

将您的代码放入

 dispatch_async(dispatch_get_main_queue(), {    //write your code here

 })

像那样:

func showDeleteWarningAndDeleteEntity() {

    dispatch_async(dispatch_get_main_queue(), {  

         let deleteController = UIAlertController(title: "Delete car", message: "Are you sure?", preferredStyle: .Alert)
    let cancelAction = UIAlertAction(title: "Cancel", style: .Cancel) {
        (action) in
    }
    let okACtion = UIAlertAction(title: "Yes", style: .Destructive) {
        (action) in
        //some network stuff happens here...

        self.dismissViewControllerAnimated(true, completion: nil)
    }
    deleteController.addAction(okACtion)
    deleteController.addAction(cancelAction)
    self.presentViewController(deleteController, animated: true, completion: nil)
     })

}

希望这对你有用

没有理由把代码写在

dispatch_async(dispatch_get_main_queue(), {    //write your code here

 })

以上代码用于主线程中的工作。但是这里你已经在主线程上了。

这里的问题是你正在调用

self.parentViewController?.dismissViewControllerAnimated(true, completion: nil)

而不是只写

self.dismissViewControllerAnimated(true, completion: nil)

因为您要在 self 控制器上显示 AlertController,所以唯一可以关闭它的人是 self