gpt4 book ai didi

objective-c - UIPageViewController 根本不起作用;完全空白

转载 作者:行者123 更新时间:2023-11-29 11:16:54 24 4
gpt4 key购买 nike

所以,

我正在尝试将 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];

这里是我设置 View Controller 的地方...

- (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。

View 绝对是可见的,因为我可以看到我应用的背景颜色...但是,UIPageViewController 完全是空白的!

我实现了所有数据源和委托(delegate)方法并采用了协议(protocol);他们甚至从来没有被叫到!

我的问题是;当您以编程方式执行所有操作时,UIPageViewController 显示页面的所有要求是什么?

根据请求编辑#1:此类是我自己的应用程序构建框架中 UIPageViewController 的 Controller 。我现在为 Controller 提供了两种构建页面的方法——从图像名称或从一种 Assets key 。无论哪种情况,它最终都会返回一个我用 UIViewController 包装的 View 。

我创建 View Controller

UIViewController* vc = [[[PageTest alloc] initWithNibName:@"PageTest" bundle:nil] autorelease];

'PageTest' 只是一个带有相应 nib 的 UIViewController,除了自动生成的设置外,它是空白的。然后我将我的自定义 View 作为 subview 添加到此 View Controller 。这是从 uicontrollerForIndex 返回的内容:

编辑#2,进一步发现

我找到了一种展示翻书机的方法;如果我只用一个 View Controller 初始化它,它将显示翻书板。这两个 View Controller 是否完全是不同的类并不重要;如果我将 setViewControllers 与其中两个一起设置,则什么也不会显示。

如果我在委托(delegate)方法中返回 UIPageViewControllerSpineLocationMid

- (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation

然后在旋转时,应用程序将在没有可识别回溯的情况下崩溃。

最佳答案

随着,

 - (UIPageViewControllerSpineLocation)pageViewController:(UIPageViewController *)pageViewController spineLocationForInterfaceOrientation:(UIInterfaceOrientation)orientation

方法,在返回spineLocation之前必须调用setViewControllers

关于objective-c - UIPageViewController 根本不起作用;完全空白,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9072632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com