【发布时间】:2013-02-11 18:46:07
【问题描述】:
我尝试了很多方法来寻找这个问题的答案,但我看到的很多主要是在根视图控制器上使用UINavigationControllers 锁定旋转问题。
在我的项目中,我有一个使用 View Controller Containment 的自定义 UIViewController。我没有实现-(BOOL)shouldAutomaticallyForwardAppearanceMethods 或-(BOOL)shouldAutomaticallyForwardRotationMethods 方法,因为它们都是默认实现,都已经返回YES。 -(BOOL)shouldAutorotate 已实现并返回 YES。
第一个显示支持所有方向的视图控制器。这正在按预期工作。
在 segue 期间加载代替第一个视图控制器的第二个视图控制器具有条件方向。视图控制器本质上是一个视图控制器,其中包含一个用于显示 PDF 页面的UIPageViewController。条件方向是 PDF 的方向。如果 PDF 是横向的,-(NSUInteger)supportedInterfaceOrientations 方法返回 UIInterfaceOrientationMaskLandscape,如果 PDF 是纵向的,则返回 UIInterfaceOrientationMaskPortrait。这个方法确实被调用了。然而,在我的 segue 中,我呼吁:
[container transitionFromViewController:source
toViewController:dest
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromRight
animations:^{}
completion:^(BOOL finished){/*relevant removal of vc's from parents*/}];
该方法需要我支持的方向,但似乎没有应用它们。我可以使用[[UIDevice currentDevice] performSelector:@selector(setOrientation:) withObject:(__bridge id)(void *)[dest preferredInterfaceOrientationForPresentation];,但这个应用程序可能会成为商店应用程序,所以我要避免这种情况。
欢迎提出任何建议。
【问题讨论】:
标签: ios ipad uiviewcontroller