배열을 사용하여 UIPageViewController에 일부 viewController를 추가하고 있습니다. 문제는 당신이 더 슬쩍 할 때 그들이 기억에 남고 나는 그들을 삭제하고 싶다는 것이다. 나는이 대리자 메서드를 발견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에 그것들을 주면 UIPageViewController가 그것들에 강한 포인터를 유지하기 때문에 viewController에있는 모든 포인터를 아무 것도 설정하지 않아도된다. –