わかりました、私は汚い解決策を見つけました、しかしそれは問題を修正しました。次の構成があります。NavigationController->UIViewController-[Modal]->UINavigationController-> UIViewController1-[Push]-> UIViewController2(上のスクリーンショットを確認してください)。
ここでのアイデアは、ModalViewのサイズを変更することです(横向きモードを強制するため、縦向きはサポートされていませんが、コードを簡単に変更できます)。AppKitと呼ばれる便利なメソッドを含む一重項クラスがあります。AppKit.mの場合:
#pragma mark - Window functions (modal, ...)
/**
* Cette méthode redimmensionne une modal view en type PaperSheet.
* Utilisé dans le viewDidAppear du controller enfant.
* Permet de mettre des modal view en fullscreen.
*
* @param id viewController Le viewController parent
*/
- (void)resizeModalToPaperSheet:(id) viewController {
// Adaptation de la taille de la fenêtre pour iPad
if (isIPad) {
[viewController navigationController].view.superview.center = CGPointMake(0.0f, 0.0f);
[viewController navigationController].view.superview.frame = CGRectMake(84.0f, 242.0f, 540.0f, 540.0f);
}
}
/**
* Cette méthode redimmensionne une modal view en type FullScreen.
* Utilisé dans le viewDidAppear du controller enfant.
* Permet de mettre des modal view en fullscreen.
*
* @param id viewController Le viewController parent
*/
- (void)resizeModalToFullScreen:(id) viewController {
// Adaptation de la taille de la fenêtre pour iPad
if (isIPad) {
[viewController navigationController].view.superview.center = CGPointMake(0.0f, 0.0f);
[viewController navigationController].view.superview.frame = CGRectMake(20.0f, 0.0f, 754.0f, 1024.0f);
}
}
サブビューコントローラで、メソッドを2回呼び出す必要があります(そうでない場合、モーダルビューのサイズは前のコントローラから保持されるため、viewDidAppearに配置する必要があります)。
ViewController 1(ペーパーシートサイズ):
-(void) viewWillAppear:(BOOL)animated {
[[AppKit sharedInstance] resizeModalToPaperSheet: self];
}
-(void) viewDidAppear:(BOOL)animated {
[[AppKit sharedInstance] resizeModalToPaperSheet: self];
}
ViewController 1(フルスクリーンサイズ):
-(void) viewWillAppear:(BOOL)animated {
[[AppKit sharedInstance] resizeModalToFullScreen: self];
}
-(void) viewDidAppear:(BOOL)animated {
[[AppKit sharedInstance] resizeModalToFullScreen: self];
}
そして、それはかなりうまく機能します; フルスクリーンとPaperSheetを簡単に切り替えることができます。残りの問題が1つあります。ストーリーボードでは、ビューがまだ小さく、内部にコンテンツを追加するのは簡単ではありません。したがって、これを行う必要があります:1 /ストーリーボードで、小さいビューコントローラーをクリックします(ボックスアイコン)2 /属性パネルで、サイズをiPadフルスクリーンに設定します
これがお役に立てば幸いです。コードを改善する方法についてのコメントは大歓迎です:)