当用户单击一个按钮时,它会显示一个带有两个视图控制器的新标签栏视图控制器。这是我的做法
ACLevelDownloadController *dvc = [[ACLevelDownloadController alloc] initWithNibName:@"ACLevelDownloadController" bundle:[NSBundle mainBundle]];
ACInstalledLevelsController *ivc = [[ACInstalledLevelsController alloc] initWithNibName:@"ACInstalledLevelsController" bundle:[NSBundle mainBundle]];
UITabBarController *control = [[UITabBarController alloc] init];
control.viewControllers = @[dvc, ivc];
dvc.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemFeatured tag:0];
ivc.tabBarItem = [[UITabBarItem alloc] initWithTabBarSystemItem:UITabBarSystemItemDownloads tag:1];
[self presentViewController:control animated:YES completion:nil];
这很好用。我使用和中的dismiss
方法解除了该视图控制器。这也很好用。奇怪的是,当我展示视图控制器时,内存使用量上升了
ACLevelDownloadController
ACInstalledLevelsController
但它永远不会退缩。如果我再次展示它,它会上升得更多, 我正在使用 ARC。为什么视图控制器使用的内存在关闭后没有被释放?
编辑
他们被解雇的方式是同时ACLevelDownloadController
连接ACInstalledLevelsController
IBActions,当他们被点击时调用这个方法
- (void)dismiss:(id)sender{
[self dismissViewControllerAnimated:YES completion:nil];
}