iOS版 iPadを縦向きにするとメイン画面がスクリーンからはみ出す
メイン画面で supportedInterfaceOrientations が呼び出されず、ランドスケープ固定とならない。 Webの情報によると、iOS11以降のiPadからマルチタスク対応が有効になったことが原因と考えられる。 現状のプロジェクト設定は、"Requires full screen"にチェックが付いていないため、 マルチタスクに対応するとみなされている。
参考ページ
supportedInterfaceOrientations not called in iPad https://stackoverflow.com/questions/35274428/supportedinterfaceorientations-not-called-in-ipad iOS で Landscape モードのみサポートする https://qiita.com/codelynx/items/e68252153bcaed9a3784
Targets / MIDITrail / General / Deployment Info / Status Bar Style にて、 "Requires full screen"にチェックマークをつける。
本不具合の対策としては、本来必要なかったが、以下修正を施しておく。
UINavigationController* で定義されていたメンバを、MTNavCtrl* に置き換えた。 MTNavCtrl は UINavigationController のラップクラス。
メンバのナビゲーション制御オブジェクトを生成するとき、UINavigationController ではなく MTNavCtrl から生成するように修正。
UINavigationController のラップクラスとして、ナビゲーション制御クラスを追加。 将来、回転制御のために shouldAutorotate や supportedInterfaceOrientations を オーバーライドする必要が出たときのために追加しておく。
MIDI IN モニタ画面は、横長のみに対応(UIInterfaceOrientationMaskLandscape)ではないため、 全方向への対応(UIInterfaceOrientationMaskAll)に修正。 この誤りにより、何らかの不具合が発生しているわけではないが、念のため修正しておく。
廃止になったメソッドを削除。
メイン画面はランドスケープ(横方向)の表示にしか対応していないため、 iPadを縦向きにしたままメイン画面を表示すると、本来は90度回転してスクリーン内に表示されるはずである。 しかし、メイン画面が90度回転されずに横方向のまま表示され、メイン画面の右側がスクリーンの外にはみ出してしまう。 本現象は iPad mini4 / iOS 12 で発生している。第3世代iPadとiPhoneでは発生していない。