我的应用程序主要支持iOS6 +。在考虑iOS5时,我添加了以下判断。
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 6.0) {
self.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentViewController:readerViewController animated:YES completion:NULL];
}
else {
self.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentModalViewController:readerViewController animated:YES];
}
但是,模态视图在我的横向应用中垂直显示。我的意思是,我的应用程序是风景,模态视图只是“谎言”那里,不是我设置的全屏,只是覆盖屏幕的一部分,而未覆盖的是黑色。
我想知道是否有人可以提供帮助。谢谢你。
答案 0 :(得分:1)
丁香: - 说什么是正确的。您不必担心版本。我认为您没有使用所需的视图Oreintation设置ModalView的方向。
意味着,如果你的mainViewController(你从中呈现ModalView)只支持横向模式,那么在modalViewController中,你必须设置方向,限制只显示在横向视图中。
你应该在modalViewController中编写mainViewController中编写的Orientation代码。
这些方法: -
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
// Return YES for supported orientations
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
// return YES;
}
-(BOOL)shouldAutorotate{
return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskLandscape;
}
如果它不能解决你的问题,如果它有帮助,请知道该怎么做;)。
答案 1 :(得分:0)
首先,presentViewController:animated:completion:
可用since iOS 5.0,因此您无需担心版本问题。如果您确实想要检查方法的可用性,则应使用
if ([self respondToSelector:@selector(presentViewController:animated:completion:)])
对于模态视图,您需要在呈现的控制器上设置modalTransitionStyle
和modalPresentationStyle
,例如在你的情况下readerViewController
。所以你的代码应该是
readerViewController.modalTransitionStyle = UIModalPresentationFullScreen;
readerViewController.modalPresentationStyle = UIModalPresentationFullScreen;
[self presentModalViewController:readerViewController animated:YES completion:NULL];