我使用MSNavigationPaneViewController
从这里 ,并有回转分类工作。 我已经覆盖在我的根旋转方法UINavigationController
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if (appDelegate.topViewController != nil) {
return [appDelegate.topViewController supportedInterfaceOrientations];
} else {
return UIInterfaceOrientationMaskPortrait;
}
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
if (appDelegate.topViewController != nil) {
return [appDelegate.topViewController preferredInterfaceOrientationForPresentation];
} else {
return UIInterfaceOrientationPortrait;
}
}
我推MSNavigationPaneViewController
使用presentViewController: animated:completion:
我有旋转工作,所以某些视图可以有不同的取向。 问题是,有一个不同的方向每个视图需要用户倾斜手机来改变,此时将其锁定在正确的方位的方位。 我已经做吨的阅读得到这个工作,看来我需要preferredInterfaceOrientationForPresentation
加载每个视图前火,但它不点火。 我认为这是不触发,因为MSNavigationPaneViewController
没有改变使用视图控制器presentViewController
。 这是用于由代码MSNavigationPaneViewController
更改视图
- (void)setPaneViewController:(UIViewController *)paneViewController
{
if (_paneViewController == nil) {
paneViewController.view.frame = _paneView.bounds;
_paneViewController = paneViewController;
[self addChildViewController:_paneViewController];
[_paneView addSubview:_paneViewController.view];
[_paneViewController didMoveToParentViewController:self];
} else if (_paneViewController != paneViewController) {
paneViewController.view.frame = _paneView.bounds;
[_paneViewController willMoveToParentViewController:nil];
[self addChildViewController:paneViewController];
void(^transitionCompletion)(BOOL finished) = ^(BOOL finished) {
[_paneViewController removeFromParentViewController];
[paneViewController didMoveToParentViewController:self];
_paneViewController = paneViewController;
};
[self transitionFromViewController:_paneViewController
toViewController:paneViewController
duration:0
options:UIViewAnimationOptionTransitionNone
animations:nil
completion:transitionCompletion];
}
}
它看起来像它只是切换的viewController和为此没有要求preferredInterfaceOrientationForPresentation
有没有什么办法来强制preferredInterfaceOrientationForPresentation
被调用,或者通过一个隐藏的视图将其诱骗叫也许?
谢谢
编辑----
我完全理解新的轮换制度在iOS6的是如何工作的,它是下到根部来管理它。 然而preferredInterfaceOrientationForPresentation
似乎只如果下一个视图被被称为presented
与正确的方法之一。 若只是切换窗口。 所以,我的确需要一种方法来欺骗这个被调用。