2010-05-12 58 views
3

我試圖從彈出窗口中顯示的視圖控制器加載模態視圖。加載模式視圖,但問題在於它轉換到主視圖中,而不是在彈出窗口中。這是我缺少的東西嗎?我以爲只是從VC開始它酥料餅內將同酥料餅中存在的模式的看法...在彈出窗口中呈現模態視圖

的代碼是沒有什麼特別的波紋管:

- (IBAction)myButton{ 
ModalVC *controller = [[ModalVC alloc] initWithNibName:@"ModalVC" bundle:nil]; 

[self presentModalViewController:controller animated:YES]; 
[controller release]; } 

回答

0

這是因爲你presentModalViewControllerself。試着在你的ViewController(個體經營)添加的UIBarButtonItem做:

[controller presentPopoverFromBarButtonItem:sender permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES]; 

其中senderUIBarButtonItem

+0

嗯,我認爲自己是已經在彈出窗口中的視圖控制器,因爲代碼是這樣的。 我已經有一個barbutton在popover中打開了一個viewcontroller。我試圖做的是將popover中的viewcontroller轉換爲使用模態轉換的新控件。 – sengbsd 2010-05-13 10:05:44

+0

對不起,我誤解你的問題。我沒有加載模式視圖的經驗_inside_一個popover ... – ohho 2010-05-13 10:27:25

18

如果在調用presentModalViewController前添加

controller.modalPresentationStyle = UIModalPresentationCurrentContext; 

:動畫您ModalVC應在彈出窗口中顯示。

在彈出窗口中以模態方式顯示某些內容的另一種方法是使用屬性modalInPopover。

+0

這些工作都沒有爲我在彈出窗口內顯示相機視圖。 – 2011-06-08 01:05:37

+0

確實,這個答案似乎缺少了一點。 – 2011-10-30 21:17:49

+4

在模態控制器(不是呈現控制器)上將modalPresentationStyle設置爲UIModalPresentationCurrentContext確實有效。 – 2011-12-23 20:32:15

2

不幸的是,它似乎你不能這樣做,它違反了HIG。從蘋果公司的View Controller Programming Guide

注意:你應該總是解僱模態顯示 另一個視圖控制器之前,可見酥料餅。有關何時和如何在應用程序中使用彈出窗口的具體指南,請參閱 iOS人機界面指南中的「Popover(僅限iPad)」。

+3

Apple在iPad的Messages應用程序中自行執行此操作。在編輯某個聯繫人的某些數據(例如他們的特殊鈴聲)時,他們將在已顯示的彈出窗口中顯示一個模式視圖控制器。而且,這是有道理的。所以,儘管HIG說了什麼,但我認爲這是正確的行爲。 (實際上,根據蘋果公司的文檔,UIModalPresentationStyle「UIModalPresentationCurrentContext」是爲這個明確的目的而設計的。) – 2012-03-03 00:52:00

+1

我認爲這個引用意味着你不應該在當前彈出窗口後面以模態方式呈現另一個視圖控制器而不關閉它;我不認爲它涉及在彈出窗口中模態地呈現視圖控制器。 – titaniumdecoy 2012-12-15 00:44:49

相關問題