调用 popToRootViewControllerAnimated:NO 时崩溃,将 animate 设置为 YES 工作时不会崩溃,奇怪。

发布于 2024-12-27 14:28:05 字数 569 浏览 1 评论 0原文

我的应用程序是基于UINavigationViewController,堆栈中有3个ViewController,分别命名为A、B、C,A是根视图控制器,现在在ViewController C中执行以下操作,应用程序将崩溃100%。

- (void) delayPopAction {
    [[self navigationController] popToRootViewControllerAnimated:NO];
}

- (void)searchTap:(id)sender{
    [self performSelector:@selector(delayPopAction) withObject:nil afterDelay:3.0];
}

通过僵尸追踪,发现C的崩溃费用已被销毁,但仍然有可用的事件发送给他。更奇怪的是,如果我把动画参数从NO改为YES,并没有发生崩溃,可能是因为C的生命周期被扩大了。

请参阅 API 文档。不 是什么意思?我不太明白。
动画 将此值设置为 YES 可以为过渡设置动画。如果您在显示视图之前设置导航控制器,请传递“否”。

任何想法或建议将不胜感激,提前致谢。

My app is based on UINavigationViewController, there are 3 ViewController in the stack, named A, B, C, A is root view controller, now in ViewController C do the following operation, app will crash 100%.

- (void) delayPopAction {
    [[self navigationController] popToRootViewControllerAnimated:NO];
}

- (void)searchTap:(id)sender{
    [self performSelector:@selector(delayPopAction) withObject:nil afterDelay:3.0];
}

Trace by zombie and find the crash dues to C has been destroyed but there is still event available sent to him. More strange, if I change animated parameter from NO to YES, no crash happen, maybe dues to C's life circle has been enlarged.

See API doc. How does NO mean? I don't understand it clearly.
animated
Set this value to YES to animate the transition. Pass NO if you are setting up a navigation controller before its view is displayed.

Any idea or suggestion will be appreciated, thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

终止放荡 2025-01-03 14:28:05

哦,这是我的视图控制器实现缺陷。

Oh, it is my view-controller implementation defect.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文