【发布时间】:2013-04-24 13:50:24
【问题描述】:
我正在使用一个数组在 UIPageViewController 上添加一些 viewController。问题是当您进一步滑动时它们会留在内存中,我想删除它们。我找到了这个委托方法:
- (void)pageViewController:(UIPageViewController *)pvc didFinishAnimating:(BOOL)finished previousViewControllers:(NSArray *)previousViewControllers transitionCompleted:(BOOL)completed
{
// If the page did not turn
if (!completed)
{
return;
}
// This is where I want to delete the previousViewControllers to release memory
}
但是如何删除那些previousViewControllers?如果您向后滚动,它们需要重新加载,但我需要删除它们,否则它们会一直留在内存中。
【问题讨论】:
-
UIPageViewController 最多应该挂在 3 个控制器上(当前、上一个、下一个),并且你永远不应该(实际上也不能)删除它所持有的那些。如果您的控制器停留的时间比这更长,可能是因为您在添加它们的数组中保留了对它们的引用。将它们提供给 UIPageViewController 后,您应该能够安全地将任何指向 viewController 的指针设置为 nil,因为 UIPageViewController 保留了指向它们的强指针。
标签: ios objective-c uiviewcontroller uipageviewcontroller