好吧,我發現了一個骯髒的解決方案但解決了這一問題。 我有以下配置 NavigationController - > UIViewController - [Modal] - > UINavigationController - > UIViewController1 - [Push] - > UIViewController2(檢查上面的截圖)。
現在的想法是調整ModalView(我強制橫向模式,所以肖像不支持,但你可以很容易地修改代碼)。我有一個包含有用方法的singletton類,我稱之爲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);
}
}
現在在我的子viewcontrollers我要調用該方法兩次(否則當你按下背面的modalview的大小是從以前的控制器依然古色古香,所以你必須把它在viewDidAppear中)。
的ViewController 1(PaperSheet大小):
-(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 /在故事板,單擊視圖控制器這是小(盒圖示) 2 /在屬性面板上,設置大小到iPad全屏
希望這有助於任何評論如何改進代碼是值得歡迎的:)