2013-11-03 30 views
1

我想这对我们所有人来说都是一个非常普遍的问题。我一直在学习几个小时,但也许是因为我太低级了,我仍然不知道如何解决它。我希望有人能够帮助。切换视图,活动字节不断上升

下面是这种情况:

  1. 我对故事板3个视图控制器(没有人回来了,代码在这一刻)
  2. 1日1(主一)有7 UIbuttons,4 UIlabels和3 UIImages,它们都没有连接到h文件。
  3. 我使用其中一个按钮连接到下一个视图(模态),并在第二个视图上创建一个按钮以连接到第三个视图,最后在视图3上的按钮连接回主视图。

看起来很简单。但是,当我在乐器/分配上运行它时,我发现每次从视图3回到主视图时,活动字节(轮1MB)都有一个大的跳跃。 (回顾:到目前为止,“H”或“M”中没有代码)。然后,我试图删除一些按钮和标签,并重新分配。我发现实时字节数仍在增加,但数量较少...显然存在无限的内存增长问题(我猜)。

所以这里是我的问题:我们怎么能解决这个问题?以及他们如何将那么多的资源分配给按钮,标签和图像,即使他们没有附加任何东西?

非常感谢!

PS。在报告中没有发现泄漏,并且他们正在不断增长...

我试过这个按钮的主视图去查看2,但是当我再次回来它只是可以回去主要对VIEW3 ...

[self dismissViewControllerAnimated:YES completion:nil]; 

mainStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:Nil]; 

UIViewController *go2= [mainStoryboard instantiateViewControllerWithIdentifier:@"view2"]; 

[self presentViewController:go2 animated:YES completion:nil]; 

回答

2

你不应该“返回”到使用赛格瑞以前的控制器(除非你使用一个展开SEGUE),因为塞格斯总是创建新的视图控制器。所以,你不是真的回到主视图,你正在创建一个新的实例。当你经历这个循环时,你会添加越来越多的视图控制器,并且它们都不会被释放。要纠正这种情况,您应该使用unwind segue返回主视图,或者使用dismissViewControllerAnimated返回代码:完成:

+0

Thx Rdelmar!这意味着使用像UIViewController * goback = [mainStoryboard instantiateViewControllerWithIdentifier:@“main_one”]; [self presentViewController:goback animated:YES completion:nil]; 也会创建一个新的VC? – Summerhei

+0

我试图使用dismissViewControllerAnimated:完成:但整个事情只是暂停,不能去任何地方=。= – Summerhei

+0

@Summerhei,是的,这创建了一个新的实例。 – rdelmar