dismissViewController 或 popViewController 都不起作用

Posted

技术标签:

【中文标题】dismissViewController 或 popViewController 都不起作用【英文标题】:Neither dismissViewController or popViewController are working 【发布时间】:2014-11-29 18:49:25 【问题描述】:

这应该很简单,但是我无法弄清楚这非常令人沮丧。

我有 2 个视图控制器,每个都嵌入在导航控制器中,在第二个 VC 上,我有一个按钮,当按下它时应该关闭/弹出这个视图并返回。这两种我都试过了,都不管用:

[self dismissViewControllerAnimated:YES completion:nil];
[self.navigationController popViewControllerAnimated:YES];

请帮忙?

【问题讨论】:

不明白——请改进问题(易读性!) 似乎不是您为关闭或弹出操作编写的代码的问题 :) 可能与导航堆栈有关 你是如何嵌入导航控制器的 您在第一个视图控制器中使用什么代码转到第二个视图控制器?你能把那个代码贴在这里吗?您如何前进对于弄清楚如何倒退至关重要。 第一个 VC 转到第二个所以我没有为此编写任何代码 【参考方案1】:

如果使用 Push/Pop 导航方案: 确保将导航控制器正确嵌入到导航开始的视图控制器中。 并确保您使用 push segue 来显示第二个视图控制器。

另一方面:如果您使用模型 segue 来呈现视图控制器,则无需嵌入导航控制器,这将起作用

[self dismissViewControllerAnimated:YES completion:nil];

【讨论】:

以上是关于dismissViewController 或 popViewController 都不起作用的主要内容,如果未能解决你的问题,请参考以下文章

糟糕编程的后果:dismissViewController 与 popViewController

未调用dismissViewController 完成处理程序

将dismissViewController 与UIAlertController 一起使用

为 DismissViewController 添加通知而不进行子类化

ios调用dismissViewController的一个小陷阱

DismissViewController UIButton 导致应用程序在 iPod touch 上崩溃