繁体   English   中英

在shouldPerformSegueWithIdentifier UIAlertController之后未执行解散Segue

[英]Unwind Segue not being performed after shouldPerformSegueWithIdentifier UIAlertController

我从名为DetailViewControllerUIViewControllerMainViewController定义为(在MainViewController ):

@IBAction func deleteItemUnwind(sender: UIStoryboardSegue)
{
    let sourceViewController = sender.sourceViewController
}

在DetailView中,我具有应该执行连接到场景出口的segue的按钮,其名称为deleteItemUnwindSegue ,在DetailViewController中,我具有prepareForSegue更改某些变量的值的按钮。 这很好。 问题是,我在DetailViewController有以下代码

    override func shouldPerformSegueWithIdentifier(identifier: String!, sender: AnyObject!) -> Bool {

    if (identifier == "deleteItemUnwindSegue") {

        let deleteItemAlert: UIAlertController = UIAlertController(title: "Delete item", message: "Are you sure you want to delete this item?", preferredStyle: .ActionSheet)

        let cancelAction: UIAlertAction = UIAlertAction(title: "Cancel", style: .Cancel) { action -> Void in
            return false
        }
        deleteItemAlert.addAction(cancelAction)

        let deleteItemAction: UIAlertAction = UIAlertAction(title: "Yes", style: .Destructive) { action -> Void in
            return true
        }
        deleteItemAlert.addAction(deleteChoreAction)

        self.presentViewController(deleteItemAlert, animated: true) {

        }
    }
    return true
}

并且尽管prepareForSegue代码有效,但不会触发Unwind segue 本身来关闭视图。 有任何想法吗?

我发现显示警报后的那一刻(在UIAlertController上阅读后)是执行警报后的代码,因此它每次都会自动给出false。 我可以通过创建一个通用的“ First Responder器” Exit并让按钮项触发安全区来绕过此操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM