我的spineLocationForInterfaceOrientation-method未被调用; 因此,脊柱总是在左边,但我想把它放在中间......我做错了什么?
if ([UIPageViewController class]) {
self.pageViewController = [[UIPageViewController alloc]
initWithTransitionStyle:UIPageViewControllerTransitionStylePageCurl
navigationOrientation:UIPageViewControllerNavigationOrientationHorizontal options:nil];
self.pageViewController.view.backgroundColor = [UIColor redColor];
self.pageViewController.delegate = self;
NotesPageController *notesPageController = [[NotesPageController alloc]
initWithNibName:@"NotesPageController" bundle:nil];
NSArray *pageViewControllers = [NSArray arrayWithObjects:notesPageController, nil];
[self.pageViewController setViewControllers:pageViewControllers
direction:UIPageViewControllerNavigationDirectionForward animated:NO completion:NULL];
self.pageViewController.dataSource = self;
[self addChildViewController:self.pageViewController];
[self.navigationController pushViewController:self.pageViewController animated:NO];
}
Run Code Online (Sandbox Code Playgroud)
非常感谢!
Dyl*_*lan 12
您是否将包含上述代码的视图控制器正确插入到视图控制器层次结构中?首先设置UIWindow.rootViewController然后调用addChildViewController:层次结构中的每个控制器.这就是我在改装iOS4应用程序时获得旋转转发和调用脊柱功能所必需的.
编辑:我发现它还有更多.Apple已经使这个类很难使用.问题是,如果您想在第一次调用时的不同时间创建UIPageViewController setViewControllers.最有可能的是,包含UIPageViewController的控制器将在init或中创建它viewDidLoad.但是目前还不知道真正的方向,因为应用程序总是以纵向方式启动,然后如果它真的在横向上则会发送轮换通知.因此,在大多数应用程序要创建UIPageViewController时,他们不知道脊椎应该位于何处.
苹果的样品要求setViewControllers在同一时间initWithTransitionStyle.这适用于像Apple这样的简单示例,但大多数应用程序可能会在以后动态加载内容.如果尚未设置任何视图控制器,则spineLocationForInterfaceOrientation不会调用.
所以现在你已经陷入困境,如果你已经创建了UIPageViewController initWithTransitionStyle.您无法设置脊椎位置,并且在不知道真实方向时,必须为初始化类的方式插入正确数量的视图控制器.如果您设置了错误的视图控制器数量,则无助于在屏幕上显示任何内容.
我看到两种可能的解决方案
始终在调用后立即插入虚拟UIViewController initWithTransitionStyle.在那里有一个视图控制器将使它响应旋转事件spineLocationForInterfaceOrientation并将被调用.
延迟创建UIPageViewController,直到您准备好设置实际内容并确定真正的方向.这就是我选择的.
您是否尝试手动设置spine属性?
要设置脊椎位置,请将其中一个常量包装在NSNumber对象中,并将其设置为传递给initWithTransitionStyle:optionsOrientation:options:方法的选项字典中的UIPageViewControllerOptionSpineLocationKey键的值.
参考:http://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIPageViewControllerClassReferenceClassRef/UIPageViewControllerClassReference.html
| 归档时间: |
|
| 查看次数: |
15507 次 |
| 最近记录: |