问题pushViewController从风景到肖像

我试图从支持横向(而在横向模式)的视图控制器,到明确不支持(而不应该)横向的视图控制器。 我这样做如下:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation { return (toInterfaceOrientation == UIInterfaceOrientationPortrait); } 

理想情况下,我想要新的viewController,我推到堆栈上开始在肖像,而不是风景。 奇怪的是,即使这个方法实施,它开始景观。

我唯一的猜测是,苹果公司不希望用户从风景转换到肖像(尽pipe允许我们从风景转移到前面的肖像控制器)。

任何见解和/或帮助将不胜感激。

我find了一种强制肖像的方法。 这有点破解,但是在这里。 在你想强制肖像的viewController的 – (void)viewDidLoad中执行以下操作:

 UIViewController *viewController = [[UIViewController alloc] init]; [self presentModalViewController:viewController animated:NO]; [self dismissModalViewControllerAnimated:NO]; [viewController release]; 

这基本上强制肖像,通过提出一个控制器(它只支持肖像默认情况下)。

您需要以模态方式呈现您的新视图控制器。 如果您的视图控制器存在于导航控制器中,那么导航堆栈中的所有视图控制器的方向由堆栈中的根视图控制器隐含。 无论您的根视图控制器在导航堆栈从shouldAutoRotateToInterfaceOrientation返回然后使用它下面的所有视图控制器。

上面的Sahil的答案从iOS 6.0开始已经被弃用了。 但是,以下似乎也是这样做的:

 UIViewController *viewController = [[UIViewController alloc] init]; [self presentViewController:viewController animated:NO completion:nil]; [self dismissViewControllerAnimated:NO completion:nil]; [viewController release];