我有一个使用情节提要创建的 iPad 应用程序。我创建了另一个使用单独的 .xib 文件创建的单个 viewController。我需要从主应用程序调用此视图控制器,然后关闭以返回主应用程序。到目前为止,我能够做到这一点。我的问题是因为我使用导航控制器来调用这个辅助视图控制器,所以我无法在横向模式下加载这个视图控制器。我只能以纵向模式加载它。基于通过这个论坛,以及我所做的任何研究,我了解到我需要将导航控制器子类化,然后我才能在横向模式下加载这个辅助视图控制器。
我在我的辅助视图控制器(NextViewController)中包含了以下方法,但它没有效果:
-(BOOL)shouldAutorotate
{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskLandscape;
}
这是调用 viewController (MainViewController) 中的代码,它调用 NextViewController,而 NextViewController 又以纵向模式出现,而不是所需的横向模式:
- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
_nextView = [[NextLandscapeViewController alloc] initWithNibName:@"NextLandscapeViewController" bundle:nil];
[_nextView setDelegate:(id)self];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:_nextView];
[self presentViewController:navigationController animated:YES completion:nil];
}
正如我所指出的,我需要的解决方案是将导航控制器子类化,但老实说,我以前从未这样做过,也不知道该怎么做。有人可以告诉我如何做到这一点,以便我可以调用 NextViewController,并让它以横向模式显示吗?
提前感谢所有回复的人。