UIKit pushViewController:animated: 上的调用会导致最终的堆栈溢出(或其他异常)吗?

Posted

技术标签:

【中文标题】UIKit pushViewController:animated: 上的调用会导致最终的堆栈溢出(或其他异常)吗?【英文标题】:Can calls on UIKit pushViewController:animated: cause eventual stack overflows (or other anomalies)? 【发布时间】:2013-04-22 02:03:40 【问题描述】:

对 UIKit pushViewController 的调用会导致最终的堆栈溢出(或其他异常)吗?我的应用现在使用pushViewController:animated: 来跨屏幕导航,例如:

[[self navigationController] pushViewController:iLovePoniesScreen animated:YES];

这最终会在来回浏览屏幕时造成溢出吗?这是 UIKit 中推荐的屏幕导航方式吗?

【问题讨论】:

【参考方案1】:

这是推荐的方法之一。除非您要推动 100 个控制器,否则您不应该遇到任何麻烦。当您返回(弹出)时,您离开的视图控制器将被释放,如果您再次前进,则会创建一个新的视图控制器,因此不会构建视图控制器。

【讨论】:

以上是关于UIKit pushViewController:animated: 上的调用会导致最终的堆栈溢出(或其他异常)吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 pushviewcontroller 的情况下制作“pushviewcontroller”动画?

pushViewController 极慢

SwiftUI - 使用“pushViewController”时出现致命错误

pushViewController 和 showViewController 的区别

popViewController 和 pushViewController 动画

pushViewController和presentViewController的区别