我已经使用UIPageViewController在webview中加载了大约5个图像。 所以每当下面的代码行
- (UIViewController *)pageViewController:(UIPageViewController *) pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
调用,返回对象是一个类对象(在我的例子中,类名是LoadPage)。我的代码中的一切都运行正常,但我在这里遇到一些奇怪的问题并且有点不舒服。
所以我计划搬到单班而不是两班。
现在这个方法的返回类型是self。
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController
{
return self;
}
我是对的吗?
但是当我尝试初始化UIPageViewController时,应用程序在某一特定行崩溃。
- (void) createViewControllers {
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options: nil];
pageViewController.delegate = self;
pageViewController.dataSource = self;
NSArray* nextScreens = [NSArray arrayWithObject:self];
[pageViewController setViewControllers: nextScreens direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:nil];
[self addChildViewController:pageViewController];
[self.view addSubview:pageViewController.view];
[[self view] addSubview:[pageViewController view]]; //CRASH
[pageController didMoveToParentViewController:self];
CGRect pageViewRect = self.view.bounds;
pageViewRect = CGRectInset(pageViewRect,0, 0);
pageViewController.view.frame = pageViewRect;
self.view.gestureRecognizers = pageViewController.gestureRecognizers;
}
答案 0 :(得分:0)
您无法在pageViewController:viewControllerAfterViewController
中返回self,因为这会在视图控制器层次结构中产生一个循环。
将pageViewController作为子视图控制器添加到self,然后pageViewController将self作为子视图控制器(页面)添加到自身。那是不允许的!