Webview に約 5 つの画像を読み込むために UIPageViewController を使用しました。したがって、以下のコード行はいつでも
- (UIViewController *)pageViewController:(UIPageViewController *) pageViewController viewControllerBeforeViewController:(UIViewController *)viewController
が呼び出され、返されるオブジェクトはクラス オブジェクトです (私の場合、クラス名は LoadPage です)。私のコードではすべて正常に動作しますが、ここで奇妙な問題に直面しており、少し不快です。
そこで、2 クラスではなく 1 クラスに移行する予定でした。
このメソッドの戻り値の型は 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;
}