使用iOS Storyboard Segue“Modal”或“Push”样式时是否有任何内存泄漏(或对象的过度实例化)?

时间:2012-05-14 13:47:35

标签: ios storyboard push modal-dialog

假设我正在开发一个带有两个屏幕的简单iPhone应用程序:登录和注册屏幕。在“登录”屏幕中,它具有“注册”按钮,该按钮进入“注册”屏幕。同样,在“注册”屏幕中,它具有“登录”按钮,该按钮进入“登录”屏幕。全部使用iOS Storyboard Segue“Modal”风格实现。

问题是:每次通过segue“Modal”样式呈现视图控制器时,是否继续向堆栈添加新视图?因此,如果我在Login和Register屏幕之间重复切换,它是否会每次都实例化新对象并继续使用内部数组容器(即堆栈)进行累积?

此外,如果我将风格改为“推”,情况将如何与类似的问题相似?每次“推”时,“推”是否会不断地将新视图对象添加到顶部?

2 个答案:

答案 0 :(得分:3)

@trapper绝对正确。 segues会将它们叠加起来,但只要你用dismissViewControllerAnimated:completion:解雇你的“模态”或用popViewControllerAnimated:弹出推送的视图控制器,它就不会泄漏。如果您错误地将登录/注册屏幕中的segue返回到主视图,那么该内存将不会被释放(这在技术上不是泄漏,但它是错误的,您不会释放内存)。

答案 1 :(得分:1)

是的,无论如何都会将它们堆叠起来。

但是,为了澄清,它不会导致任何泄漏。