我已经花了几个小时在这上面,但无法让它工作。希望有人能帮助我。
我有一个 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 只显示一页(水平拉伸)而不是两页,因为它应该是。我需要将设备旋转为纵向,然后返回横向模式以强制 UIPageViewController 显示两个页面。我将 UIPageViewController 添加到导航控制器:
[self.navController pushViewController:self.pageViewController animated:NO];
当我调试我的代码时,我发现没有导航控制器 UIPageViewController 的委托方法在启动时被调用。当我将 UIPageViewController 推到导航控制器上时,它们不会被调用,直到我旋转设备。
有谁知道如何解决这个问题?在此先感谢您提供任何帮助/提示。