1

我正在修改現有的iPhone應用程序以在iPad上運行。在iPhone版本中,當用戶點擊一個工具欄按鈕時,我會提供一個modalTransitionStylemodalTransitionStyle模式視圖控制器,這使得一個非常好的「卡片翻轉」動畫。僅通過分割視圖控制器的一半呈現模態視圖控制器

iPad接口基於分割視圖(實際上爲MGSplitViewController)。工具欄按鈕位於細節窗格中,因此當呈現模式視圖控制器時,它佔據了整個屏幕,並且翻轉過渡沒有意義。

爲了獲得正確的用戶交互,我希望模態控制器出現並通過詳細視圖控制器翻轉到,使主視圖控制器保持原樣。

有沒有辦法做到這一點?

+0

@parilogic不幸的是,這就是我已經做的事情:即我從分割視圖控制器呈現。模態控制器仍然覆蓋整個屏幕。 – Bill

+0

等等。您必須通過DetailViewController的實例來呈現它。 – parilogic

+0

都不行。我已經嘗試了分割視圖控制器和詳細視圖控制器。兩者都佔據了整個屏幕。 – Bill

回答

7
UIViewController *viewController = [[UIViewController alloc] init]; 
viewController.modalPresentationStyle = UIModalPresentationCurrentContext; 

[self presentViewController:viewController animated:YES completion:nil]; 
+0

我實際上最終使用這個解決方案並放棄了翻蓋。謝謝! – Bill

+1

演示文稿樣式根據您是否運行iOS 7或iOS 8而有所不同:http://stackoverflow.com/questions/29242286 – Bill

5

也許您可以將其視圖添加爲DetailViewcontroller的子視圖,並使用UIview動畫使其看起來像模態。 Reference to [UIView transitionFromView:toView:duration:options:completion]

編輯 在觀看視頻WWDC2010(會話123:建築動畫驅動的界面),我不小心才知道,我可以做不同的方式同轉變。我的樣品編碼和它的工作:)

它是使用另一個非常類似的API [UIView transitionWithView:duration:options:animations:completion:]

我的示例代碼如下

// Within your DetailViewController 
[self.view addSubview:self.flipSideView]; 
[UIView transitionWithView:self.view duration:0.8 options:UIViewAnimationOptionTransitionFlipFromLeft animations:^{} completion:nil]; 

是啊,就是這樣。只需將副視圖添加爲子視圖,並使用transitionWithView:...動畫而不是transitionFromView...

+0

這聽起來很有希望。讓我試試看。 – Bill

+0

同樣的東西 - 模態視圖控制器似乎總是擴大佔據整個屏幕。它包裹在導航控制器中,順便說一句,但我需要導航控制器。 – Bill

+0

看起來像UIViewAnimationOptionTransitionFlipFromLeft是問題 - 即使我調整導航控制器的大小,整個屏幕翻轉 - 不只是細節控制器。 – Bill

相關問題