簡體   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