私はこれに何時間も費やしましたが、うまくいきません。誰かが私を助けてくれることを願っています。
アプリケーションの起動時にデフォルトのビューに追加すると、完全に機能する UIPageViewController があります。これが私がすることです:
//Step 1
//Instantiate the UIPageViewController.
self.pageViewController = [[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
//Step 2:
//Assign the delegate and datasource as self.
self.pageViewController.delegate = self;
self.pageViewController.dataSource = self;
//Step 3:
//Set the initial view controllers.
ContentViewController *contentViewController = [[ContentViewController alloc] initWithNibName:@"ContentViewController" bundle:nil];
contentViewController.labelContents = [self.modelArray objectAtIndex:0];
NSArray *viewControllers = [NSArray arrayWithObject:contentViewController];
[self.pageViewController setViewControllers:viewControllers
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:nil];
[self addChildViewController:self.pageViewController];
[self.view addSubview: self.pageViewController.view];
ここで、ユーザーがボタンをクリックしたときに UIPageViewController をスタックにプッシュするナビゲーション コントローラーを初期ビューで使用したいと考えています。これも機能しますが、横向きモードの場合、UIPageViewController は 2 つではなく、1 つのページ (水平方向に引き延ばされている) のみを表示します。UIPageViewController に両方のページを表示させるには、デバイスを縦向きに回転させてから横向きモードに戻す必要があります。私は UIPageViewController をナビゲーションコントローラーに追加しています:
[self.navController pushViewController:self.pageViewController animated:NO];
コードをデバッグすると、ナビゲーション コントローラーがないと、起動時に UIPageViewController のデリゲート メソッドが呼び出されることがわかります。ナビゲーションコントローラーで UIPageViewController をプッシュすると、デバイスを回転させるまで呼び出されません。
これを解決する方法を知っている人はいますか?これに関するヘルプ/ヒントをお寄せいただきありがとうございます。