iphone - iOS:通过委托(delegate)方法从推送的 ViewController 返回?

标签 iphone ios delegates modalviewcontroller pushviewcontroller

我已经为此苦苦挣扎了将近 2 个小时,但没有成功。

我有一个 View Controller 。让我们称之为第一。我按下一个按钮,它使用模态样式将我带到第二个 View Controller 。在第二个中,我添加了一些数据,我可以通过两个导航栏按钮保存或丢弃这些数据:保存和取消。两者都做他们所做的,然后他们让我回到上一个屏幕。我实现了一个协议(protocol)并使用了委托(delegate)。到目前为止一切正常。

今天我决定拥有一个可以从第二个 VC 访问的第三个 View Controller 。问题是我无法移动到 THIRD,直到我将从 First 到 Second 的过渡更改为 PUSH(而不是模态)。现在我可以从第一跳到第二,从第二跳到第三。一切都很好。

问题:如果我在第二个 VC 上按取消或保存,它会调用方法,它使用委托(delegate)转到第一个并执行一些函数,但是当它调用时:

[self dismissViewControllerAnimated:YES completion:nil];

没有任何反应,我停留在第二个 View 上。基本上我是使用 MODAL 与委托(delegate)和协议(protocol)方法......我切换到 PUSH,我无法摆脱我的第二个 View 并返回到第一个。似乎 dismissViewController 什么也没做。

非常感谢任何帮助。我可以通过删除取消按钮并使用默认带有 PUSH 的 BACK 来解决所有这些问题,但我只想知道它的问题是什么..谢谢!!

最佳答案

在您的第二个 viewController 上调用 UINavigationController 的方法 popViewControllerAnimated:popToRootViewControllerAnimated:。这将从导航堆栈中弹出 Controller (调用的是第二个)。您可以通过其属性 navigationControllerUIViewController 中获取导航 Controller 。

关于iphone - iOS:通过委托(delegate)方法从推送的 ViewController 返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9918144/

相关文章:

iphone - 如何正确地使 NSTimer 失效

iOS 集成照片应用

kotlin - 有没有办法在 kotlin 中编写可暂停的委托(delegate)属性?

ios - 此类不符合键登录的键值编码

iphone - 排序NSDate

ios - 翻转 UILabel

ios - 快速将图像覆盖到 CGRect 上

ios - 通过标题识别 UIAlertView,但不显示标题

ios - 委托(delegate)方法发送自己的对象或不发送它

iphone - 如何将 UIVIewController 设置为 RootViewController?