0

我有一个有很多视图的应用程序。每当我单击第一个视图上的下一个按钮时,我都会呈现第二个视图。目前我这样做如下:

NextView *second = [[NextView alloc] initWithNibName:nil bundle:nil];
[self presentModalViewController:second animated:YES];

然而,在这个应用程序中,我不再需要保留第一个视图中的任何信息。有什么方法可以调出第二个视图,并从内存中释放第一个视图?我在想,如果我连续调出 5 个视图,并且它们都是模态的,那么我将使用更多我真正需要的内存。如果用户点击后退按钮,我还想打开第一个视图,并从内存中删除第二个视图。

有什么方法可以节省内存,还是我不应该担心这个内存?

4

3 回答 3

0

您绝对应该尝试使用UINavigationController. 随着pushViewController:animated:您在堆栈上推送一个新的视图控制器,您将免费获得一个带有“返回”按钮的导航栏。popToViewController:animated:你可以回到最初的视图控制器。

UINavigationController有很好的文档记录,并且有很多示例程序。我还没有使用 Storyboard,但这应该会使构建基于导航控制器的视图序列变得更加简单。

您不必关心从内存中释放视图。如果内存不足,视图会自动卸载。如果您的视图控制器分配了大量的额外内存,那么您应该实施didReceiveMemoryWarning以释放该内存。有关详细信息,请参阅视图控制器生命周期

于 2012-08-13T07:10:39.400 回答
0

我认为您应该使用导航栏并将其隐藏并使用此处标记为正确的答案。

iPhone - 在导航控制器中替换 rootview

于 2012-08-13T07:16:58.423 回答
-1

在进入下一个视图时,添加发布之类的

NextView *second = [[NextView alloc] init];
[self presentModalViewController:second animated:YES];
[second release];
于 2012-08-13T05:41:39.787 回答