我正在使用数组在UIPageViewController上添加一些viewControllers。问题是当你进一步滑动时它们会留在内存中,我想删除它们。我找到了这个委托方法:
- (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?如果你向后滚动它们需要重新加载但是我需要删除它们,否则它们会一直留在内存中。
答案 0 :(得分:-1)
我从未使用UIPageViewController
,但似乎previousViewControllers
是只读的。我要做的是向之前的ViewControllers发送一条消息,告诉他们重新加载。
例如,我相信这将访问显示的最后一个ViewController:
MyVC *lastVC = (MyVC*)[previousViewControllers objectAtIndex:[previousViewControllers count]-1];
lastVC.reloadFlag = YES; // Assuming you have a reloadFlag property in your MyVC class
所以你可以把它放在你问题中的方法中。
然后确保在返回ViewController时在viewWillAppear
对象中调用MyVC *
,如果是,请在其中添加一个简单的内容:
if(_reloadFlag) {
//updateUI
}
这只是一个想法,您可能需要更改一些内容才能使其正常工作。