我有一个 UIPageViewController,我在其中添加了其他 viewController。这些 ViewControllers 在数组中,viewControllersArray = [[NSMutableArray alloc] init];
我在这个数组上添加 viewControllers,如下所示:
[viewControllersArray addObject: infoViewController];
在我的数组上添加 viewControllers 后:
NSArray *initialViewControllers = [[NSArray alloc] initWithObjects:[viewControllersArray objectAtIndex:0], nil];
[self setViewControllers:initialViewControllers
direction:UIPageViewControllerNavigationDirectionForward
animated:YES
completion:^(BOOL finished){
NSLog(@"call back success");}];
上面的代码都是在我的 UIPageViewController 的 viewDidLoad 中完成的。
为了加载这个数组,我得到了<UIPageViewControllerDataSource>
我使用的那些函数表单:
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
if ([viewControllersArray containsObject:viewController]) {
NSInteger index = [viewControllersArray indexOfObject:viewController];
if (index < [viewControllersArray count] && index > 0) {
return [viewControllersArray objectAtIndex:(index - 1)];
}
}
return nil;
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
if ([viewControllersArray containsObject:viewController]) {
NSInteger index = [viewControllersArray indexOfObject:viewController];
if (index < [viewControllersArray count] - 1) {
return [viewControllersArray objectAtIndex:(index + 1)];
}
}
return nil;
}
现在的问题是,当您滑动时,下一个视图控制器会被加载,等等。但它们不会被卸载。因此,我正在寻找一种方法来卸载您已经传递的视图控制器以节省内存,并且当您向后滑动时,它们将被重新加载。