问题pushViewController从Landscape到Portrait

Sah*_*hil 5 iphone orientation uiviewcontroller uiinterfaceorientation ios

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
    return (toInterfaceOrientation == UIInterfaceOrientationPortrait);
}
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要新的viewController,我正在推动堆栈,最初是在纵向,而不是横向开始.奇怪的是,即使实施了这种方法,它也会在Landscape中开始.

我唯一的猜测是Apple不希望用户从横向转换为纵向(尽管允许我们从横向转换回以前的纵向控制器).

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

Sah*_*hil 10

我找到了强迫肖像的方法.这有点像黑客,但在这里.在想要强制使用肖像的viewController的 - (void)viewDidLoad中执行以下操作:

UIViewController *viewController = [[UIViewController alloc] init];
[self presentModalViewController:viewController animated:NO];
[self dismissModalViewControllerAnimated:NO];
[viewController release];
Run Code Online (Sandbox Code Playgroud)

这基本上通过呈现控制器(默认情况下仅支持纵向)强制纵向.