导航控制器和栏 - 内存管理

时间:2010-06-19 15:17:15

标签: iphone memory-management uinavigationcontroller pushviewcontroller

首先......我是意大利人,所以我很抱歉我的英语不好!

所以......这是我的应用: 我正在使用导航控制器:在第一个视图中有10个按钮,每个按钮调用如下函数:

    [self pushViewController:nameview animated:YES];

到另一个uiviewcontroller!所以我有11 uiviewcontroller! 每个控制器都像这里一样被删除

@interface ...
IBoutlet UIViewController *viewcontroller;
...
@property (nonatomic, retain) IBOutlet UIViewController *viewcontroller;

最后我要说我正在与IB合作!

我的问题是我的应用程序没有释放内存! 当我在一个视图中,我点击“backbuttonitem”(由IB创建,而不是由我创建)时,最后一个视图没有被释放(再次,抱歉我的英语不好)......如果用户看到所有10视图,应用程序接收警告按摩(低内存)!

如何在popviewcontroller操作之前发布最后一个视图?

谢谢:D

1 个答案:

答案 0 :(得分:1)

当您将视图控制器推到导航控制器上时,您需要在导航控制器现在拥有它时将其释放。例如,您将执行以下操作:

UIViewController *controller = [[UIViewController] initWithNibName:@"Nib" bundle:nil];
[self pushViewController:controller animated:YES];
[controller release];

然后当您使用popViewControllerAnimated:时,导航控制器将负责确保视图控制器从内存中释放。