0
我已经使用UIPageViewController在webview中加载5个图像。 所以,只要下面的代码行返回相同的类对象到UIPageViewController
- (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;
}
所以你的意思是,如果我使用UIPageViewController,我需要使用另一个类即ViewController是强制性的? – Cyril
当然是。将根视图控制器作为孩子添加到孩子身上是愚蠢的。 – Felix
将pageViewController设置为window.rootViewController并在应用程序委托中实现委托是一种很好的做法。 – Felix