gpt4 book ai didi

ios - 有没有办法在 UIPageViewController 中获取所有预加载的 View Controller

转载 作者:行者123 更新时间:2023-11-29 12:17:05 25 4
gpt4 key购买 nike

我有一个 UIPageViewController。我可以翻页,一切正常。 UIPageViewController 预加载一个 ViewController。此时,内存中有两个 View Controller (一个是可见 Controller ,另一个是预加载 Controller )。我想获得两个 ViewController,这样我就可以即时更改一些设置。

问题是如何获得预加载的 subview Controller ?如果我无法获得这些 Controller ,那么在所有预加载的 View Controller 上重置某些属性的最佳方法是什么?

最佳答案

您可以修改可用于构建 View Controller 的自定义对象:

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController {
NSUInteger index = [(PageChildViewController *) viewController index];
if (index == 0) {
return nil;
}
index--;
return [self viewControllerAtIndex:index];
}

- (UIViewController *)viewControllerAtIndex:(NSUInteger)index {
CustomObject *customObject = self.customObjects[index];
PageChildViewController *childViewController = [PageChildViewController controllerWithIndex:index andCustomObject:customObject];
return childViewController;
}

- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController {
NSUInteger index = [(PageChildViewController *) viewController index];
index++;
if (index == self.pages.count) {
return nil;
}
return [self viewControllerAtIndex:index];
}

如果你需要更新当前可见的页面 View Controller ,你可以使用这个:

[self.pageController setViewControllers:viewControllers direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];

如果你需要重置你的页面 View Controller 缓存,你可以使用这个:

self.pageController.dataSource = nil;
self.pageController.dataSource = self;

关于ios - 有没有办法在 UIPageViewController 中获取所有预加载的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31744824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com