所以,
我正在尝试将其UIPageViewController
与自定义应用程序工作流程一起使用,但我正在完全按照文档中的建议实施它。
self.pageViewController = [[[UIPageViewController alloc] initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil] autorelease];
//calls setViewControllers:direction:animated:completion with valid UIViewControllers
[self setupPagesWithIndex:0];
self.pageViewController.delegate = self;
self.pageViewController.dataSource = self;
self.view.frame = CGRectMake(0, 0, 1024, 768);
self.pageViewController.view.backgroundColor = [UIColor grayColor];
这是我设置视图控制器的地方...
- (void) setupPagesWithIndex:(NSInteger) index
{
UIViewController* vc1 = [self uicontrollerForIndex:index];
UIViewController* vc2 = [self uicontrollerForIndex:index+1];
[self.pageViewController setViewControllers:[NSArray arrayWithObjects:vc1,vc2, nil]
direction:UIPageViewControllerNavigationDirectionForward
animated:NO
completion:nil];
}
屏幕上唯一出现的是灰色背景色。我已经验证了UIViewControllers
它们是有效的,有很好的框架,我什至给了它们背景颜色,这样我就可以看到一些东西
这就是我将 UIPageViewController 添加到屏幕的方式:
[[self rootViewController] addChildViewController:self.pageViewController];
[[self rootViewController].view addSubview:self.pageViewController.view];
[self rootViewController]
返回应用程序的 rootViewController。
该视图绝对是可见的,因为我可以看到我应用的背景色......但是,UIPageViewController 完全是空白的!
我实现了所有的数据源和委托方法并采用了协议;他们甚至从来没有被叫过!
我的问题是;当您以编程方式执行所有操作时,UIPageViewController 显示页面的所有要求是什么?
编辑#1,每个请求:此类是我自己的应用程序构建框架中 UIPageViewController 的控制器。我现在为控制器提供了两种构建页面的方法——从图像名称或从一种资产密钥。无论哪种情况,它最终都会返回一个我用 UIViewController 包装的视图。
我创建视图控制器
UIViewController* vc = [[[PageTest alloc] initWithNibName:@"PageTest" bundle:nil] autorelease];
'PageTest' 只是一个带有相应笔尖的 UIViewController,除了自动生成的设置外,它是空白的。然后,我将我的自定义视图作为子视图添加到此视图控制器。这是从 uicontrollerForIndex 返回的内容:
编辑#2,进一步发现
我找到了一种展示书架的方法;如果我只用一个视图控制器初始化它,它将显示翻书机。两个视图控制器是否完全是不同的类并不重要;如果我用其中两个 setViewControllers 则没有显示。
如果我UIPageViewControllerSpineLocationMid
在委托方法中返回
- (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation
然后在旋转时,应用程序将崩溃而没有可识别的回溯。