来自 NSobject 类的 popToRootViewControllerAnimated 给出错误

Posted

技术标签:

【中文标题】来自 NSobject 类的 popToRootViewControllerAnimated 给出错误【英文标题】:popToRootViewControllerAnimated from NSobject class giving errors 【发布时间】:2013-08-12 01:53:39 【问题描述】:

如果出现错误,我会尝试从导航堆栈中弹出所有视图。错误代码在 NSObject 类中,所以我无权访问导航控制器。这是我尝试过的代码

[self.navigationController popToRootViewControllerAnimated:FALSE];

我想知道从 NSobject 类的堆栈中访问和弹出视图的最佳方法。

任何帮助将不胜感激。

【问题讨论】:

你尝试过 Unwind segue 吗? 不,我没有,我什至从未听说过这个.. 大声笑,您可能需要知道的一件事是,当发生此错误并需要解决时,我可能处于几种不同的观点之一回到那个时候的根视图控制器。 不确定这是否可行,但可能会从 NSObject 发送一个 NSNotification 到可以访问 navigationController 的类。 但是为什么要从 NSObject 类中调用它呢? 因为它是一个错误类,它向用户呈现 UIAlertView。我不想在每个视图控制器中写入同样多的错误来处理错误..这样更干净。 【参考方案1】:

所以,你确实想要 Unwind segue。简单的工具,非常有用且易于实现。无论您在层次结构中有多深,此 segue 都会成功地将您带回 ViewController。

我认为了解如何实现此功能的最佳方式描述为 in this answer 和 in this answer(我更喜欢)。

这应该适合你。

【讨论】:

好的,非常感谢......我会在更新 xcode 后尝试这样做,因为我看不到那个退出按钮。 我不确定这是否可行,因为我没有使用故事板? @HurkNburkS 呸!骗子!我应该检查一下...您可以做的是在最新的 VC 中使用 popToRootViewControllerAnimated 方法创建一个自定义方法,然后使用 this answer 从另一个类中调用它。 对不起,我应该解释得更好:P 伙计不确定这是否会像我计划的那样工作...... 也许,你有没有在评论中尝试我的建议?

以上是关于来自 NSobject 类的 popToRootViewControllerAnimated 给出错误的主要内容,如果未能解决你的问题,请参考以下文章

处理来自另一个类的 CLLocationManager 委托

NSObject

为啥我们不能在不从 NSObject 继承类的情况下迅速采用协议?

iOS Class 使用NSProxy和NSObject设计代理类的差异

iOS之深入解析少见却神奇的NSProxy类的多种使用

OC基础--OC中类的定义