У меня проблема с новым PageViewController (тот, у которого анимации с поворотом страницы). Насколько я понимаю, есть стек ViewControllers, который нужно настроить так:
PageView *startingViewController = [self.modelController viewControllerAtIndex:0];
NSArray *viewControllers = [NSArray arrayWithObject:startingViewController];
[self.pageViewController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
Пока все хорошо. Затем вам нужно настроить источник (ваш контроллер модели). В вашем контроллере модели вам нужно использовать четыре метода:
-(PageView *)viewControllerAtIndex:(NSUInteger)index
-(NSUInteger)indexOfViewController:(PageView *)viewController
-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
-(UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
Последние два называются, если вы переворачиваете страницу (на следующую или предыдущую). Второй просто определяет номер индекса страницы. Интересный - и тот, где моя проблема - это первый. Первый возвращает ViewController (который в моем примере называется PageView). Это самый конец метода:
PageView *pView = [[PageView alloc] init];
return pView;
Мне интересно, где заканчивается этот pView и как я могу его выпустить? Я думаю, что авто-релиз - плохая идея, так как я не знаю, как долго это нужно. Если он окажется в стеке (что, я думаю, так и будет), как долго это нужно? Конечно, только для следующих нескольких страниц. Например, представьте, что вы настраиваете pView для страницы 1. Затем вы переходите на страницы 2 и 3. К тому времени вам больше не нужна страница 1 - вы можете ее отпустить. Если вы вернетесь на страницу 1, она будет перезагружена.
Я поместил команды журнала в мой пакет pView, но он никогда не вызывается. Поэтому я предполагаю, что я пропускаю все созданные мной контроллеры view.
Есть идеи, как и где выпустить их, когда они больше не нужны?