iOS 6 用のアプリの開発を開始し、そこで動作するようになりました。今は、iOS 5.1 もサポートしていることを確認して、iPad 1 で動作するようにする必要があります。 iOS 5 では、iOS 6 での簡単さに比べて、苦痛を感じます。私には解決できない問題が 1 つあります。
以下に開始画面レイアウトを示します。[実行] ボタンを押すと、別のビュー コントローラーがモーダルで全画面表示されます。これは、実行ボタンが親ビュー コントローラーで呼び出すコードです。
- (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 では、すべての適切なコードが呼び出されているようです。
- 提示されているView ControllerのloadView
- shouldAutorotateToInterfaceOrientation - YES を返す
- 私の「startPerformance」メソッドが呼び出され、そのことを行います
ただし、ビューは実際には画面に表示されず、階層の上位にあるビュー コントローラーに関連付けられているすべてのビュー (上部の図形とナビゲーション コントロール) は画面に表示されたままになります。現在のビュー コントローラーのビューのみがフェードアウトします。さらに奇妙なのは、トランジション中にこのビューが 90 度回転してフェードアウトすることです。以下に画面キャプチャを含めました。modalPresentationStyle を UIModalPresentationFormSheet に変更すると、フルサイズのビューが収まらないという予想される問題とは別に動作します。
何かご意見は?
開始レイアウト:
遷移中のサブビューの奇妙な回転。また、1 つのビューだけでなく、画面全体がフェードアウトする必要があります。
何が起こると予想され、iOS 6 で行われるか。