我开始为 iOS 6 开发我的应用程序并让它在那里工作,现在我必须确保它也支持 iOS 5.1,以便它可以在 iPad 1 上工作。移植非常简单,尽管只支持横向方向更多iOS 5 中的痛苦与 6 中的简单相比。我有一个无法解决的问题。
我有如下所示的起始屏幕布局,然后当您按下“执行”按钮时,它应该以模态方式呈现另一个视图控制器,全屏。这是父视图控制器中执行按钮调用的代码。
- (void)performButtonPressed:(UIImage *)notationImage {
self.performViewController = [[YHPerformViewController alloc] initWithImage:notationImage
recordingService:self.performanceRecordingService];
self.performViewController.modalPresentationStyle = UIModalPresentationFullScreen;
self.performViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
[self presentViewController:self.performViewController animated:YES completion:^{
[self.performViewController startPerformance];
}];
}
在 iOS 6 中,这很好。在 iOS 5 中似乎调用了所有正确的代码:
- 正在呈现的视图控制器上的 loadView
- shouldAutorotateToInterfaceOrientation - 我返回 YES
- 我的“startPerformance”方法被调用并做它的事情
但是,视图实际上并没有出现在屏幕上,并且与层次结构更高的视图控制器关联的所有视图都保留在屏幕上(顶部的形状和导航控件)。只有当前视图控制器的视图会淡出。更奇怪的是,在过渡期间,该视图在淡出时旋转了 90 度。我在下面包含了一个屏幕截图。如果我将 modalPresentationStyle 更改为 UIModalPresentationFormSheet,除了我的全尺寸视图不合适的预期问题之外,它还可以工作。
有什么想法吗?
起始布局:
过渡期间子视图的奇怪旋转。整个屏幕也应该淡出,而不仅仅是一个视图:
在 iOS 6 中预期会发生什么以及做什么。