Ios 不需要的popToRootViewController

Ios 不需要的popToRootViewController,ios,uinavigationcontroller,Ios,Uinavigationcontroller,我有一个旧的iOS应用程序,我正在为其进行更新。使用8.2和8.3 SDK编译时,我会将不需要的POP发送到根视图控制器,运行在8.3或7.1 iOS上。根据特定的视图配置,当我将第二个视图添加到堆栈中时,我会在ViewDid出现后立即从堆栈上的第二个视图或第三个视图弹出到rootViewController。我已经中断了我所有的popTo语句,但没有一个是由它们引起的。我没有得到任何原因的迹象。有什么调试工具可以帮我找到这个吗?您可以对导航控制器进行子类化,并使用一个只调用super的实现重写

我有一个旧的iOS应用程序,我正在为其进行更新。使用8.2和8.3 SDK编译时,我会将不需要的POP发送到根视图控制器,运行在8.3或7.1 iOS上。根据特定的视图配置,当我将第二个视图添加到堆栈中时,我会在ViewDid出现后立即从堆栈上的第二个视图或第三个视图弹出到rootViewController。我已经中断了我所有的popTo语句,但没有一个是由它们引起的。我没有得到任何原因的迹象。有什么调试工具可以帮我找到这个吗?

您可以对导航控制器进行子类化,并使用一个只调用super的实现重写popToRootViewController方法。在那里放置一个断点,您应该能够查明原因。(确保用子类替换默认导航控制器)


如果popToRootViewController仍然没有被调用,那么其他视图控制器可能会因为某种原因被解除分配或解散。

Perfect,它已经为其他内容子类化了。添加了pop方法,并在10秒内找到它。谢谢,出于好奇,这是什么?我在应用程序委托中有一些旧代码,当基于设置更改触发通知时,我认为我已禁用了popToRootViewController。现在看看它,我明白了为什么会发生这种情况,但奇怪的是,当我搜索所有popToRootViewController语句时,这段代码并没有出现。我得调查一下。