在导航堆栈中重新创建viewController

谢尔盖·格里奇霍夫(Sergey Grischyov)

我有某种情况要解决:

我有一个UIViewController负载。在特定条件下,我选择UIViewController在导航堆栈中显示一个新的顶部。之后,我想将前一个保留UIViewController在堆栈中,但是要进行排序release,因此当顶级VC弹出到第一个时,我发现它不是处于离开状态的状态,而是好像它只是推。

但是,我知道我可能只想将其推到第二个VC之上,但这会在导航堆栈中造成混乱,并可能会导致这种行为循环,从而导致内存泄漏。

我正在使用ARC,并为iOS 6及更高版本构建应用程序。

马丁·R

我认为您有两种选择:

  1. viewWillAppear 如果第二个视图控制器从导航堆栈中弹出,则在第一个视图控制器中调用,因此您可以在该方法中重置第一个视图控制器的所有状态和UI元素。
  2. 弹出第二视图控制器之前,您可以使用setViewControllers:animated:的方法UINavigationController,以取代在导航堆栈中一个新的实例的第一个视图控制器实例。

因此,这取决于您是否要保留第一个视图控制器实例并仅对其进行“重置”,还是要在从第二个视图控制器返回时将其作为“新鲜”实例。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在Flutter中重新创建crossDissolve导航

如何重新创建导航动画

清除导航返回堆栈并重新创建活动

使用堆栈实现撤消和重做功能。如何编辑堆栈而无需在Haskell中重新创建堆栈

在Kotlin中重新创建对象

在Rails中重新创建表

requestPermission()不能完全重新创建活动堆栈

在jquery / javascript中重新创建Chrome iOS滚动导航栏效果

尝试在CSS3中重新创建WebOS样式导航

导航回到抖动后重新创建流

在导航上重新创建Blazor单例对象

在运行时更改语言环境时刷新(重新创建)后退堆栈中的活动

Mosby 3 MVP - 返回到返回堆栈中的片段时总是重新创建演示者

是否可以使用原始堆栈和堆栈帧重新创建错误对象?

删除了Cloudformation堆栈,由于已有资源,现在无法重新创建新的堆栈

如何在xml中重新创建此背景?

在SQL Server中删除/重新创建类型

是否可以忽略git中的文件重新创建?

在Tableau中重新创建Power BI公式

iOS:在Swift中重新创建addTarget()的最佳实践?

在SwiftUI中重新创建蒙版模糊效果

合并数组中的json,然后重新创建数组

在R中重新创建spss GEE回归表

在 numpy 中重新创建 Keras 模型

在Swift中重新创建Python的输入语句

在Ubuntu中重新创建PyCharm启动器

uitableview中的FBProfilePictureView每次都会自行重新创建

ExoPlayer 在片段中旋转屏幕后重新创建

从 Kaggle 比赛中重新创建 forloop 的问题