撤消模态并同时显示 segue

Posted

技术标签:

【中文标题】撤消模态并同时显示 segue【英文标题】:undoing a modal and show segue at the same time 【发布时间】:2016-07-06 18:02:27 【问题描述】:

我有一个UITableView(我们称它为 HomeVC),当您按下单元格时,它会通过 show segue 将您带到详细信息页面。在该详细信息 (DetailsVC) 页面上,有一个编辑按钮,它以模态方式显示带有删除选项的编辑视图 (EditVC)。当按下删除选项时,我想回到 HomeVC,“展开”(如果这是正确的术语)EditVC 和 DetailsVC。

现在我的删除按钮(在 EditVC 中)会弹出一个 ActionSheet 来确认删除,并使用 destroy(delete) 按钮执行操作:

let destroyAction = UIAlertAction(title: "Confirm Delete", style: .Destructive)  (action) in
    //handle deletion stuff...

    // send user back to HomeVC
    self.dismissViewControllerAnimated(false, completion: nil)
    //also tried self.parentViewController?.dismiss...                   

dismissViewController 的作用是摆脱从 DetailsVC 到 EditVC 的模态 segue,让我回到 DetailsVC,但由于该项目现已删除,我不想看到它的详细信息,我想一路走下去回到 HomeVC。我怎么能做到这一点?我可以在上面的函数中从 EditVC 中完成这一切吗?

编辑:如果你是从搜索/谷歌来到这里,这就是我曾经最终得到的:https://***.com/a/27879562/2868510

【问题讨论】:

【参考方案1】:

试试这个,

self.navigationController?.popViewControllerAnimated(true)

【讨论】:

这似乎什么也没做。我试着只调用这个,在dismissViewControllerAnimated() 之后调用它,然后在completion 调用它。唯一会发生的是dismissViewControllerAnimated()

以上是关于撤消模态并同时显示 segue的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 UITableView 不执行 show segue,只显示模态

在模态 segue (ViewController) 中显示 UINavigationController?

总是以模态的方式呈现

segues的自动化测试

从 viewDidAppear 呈现时,模态弹出框控制器不显示其内容

如何将 segue 标识符添加到以编程方式进行的模态转换?