2012-05-03 35 views
4

我想在Interface Builder中靜靜地設計我的視圖,然後能夠以UIPopoverController的形式動態顯示它們。如何使用Interface Builder將視圖顯示爲UIPopoverController?

我發現this precious tutorial Ray Wenderlich,但我無法將其擴展到我的需要。

任何人都可以幫助我嗎?

非常感謝。

+0

你的問題到底是什麼?製作UIViewControllers並將它們呈現爲彈出式非常簡單,應該在本教程中進行介紹。導致你麻煩的部分是什麼?您是否試圖呈現不附加到視圖控制器的視圖? – BBog

+0

嗨Bogdan,我有一個視圖附加到視圖控制器。我不知道如何使用此代碼將其顯示爲popover。的確,在本教程中,Ray構建了一個表格視圖控制器。 – gluon

回答

7

下面是我通常這樣做:比方說,我有一個父視圖控制器,我想在其中顯示彈出窗口。 我宣佈一個酥料餅的控制器作爲該VC屬性(@property(非原子,保留)UIPopoverController * popOverController;)

用於呈現酥料餅的一個新的視圖控制器的代碼,讓我們稱之爲ViewController2,會是這樣一個

ViewController2* viewController2 = [[ViewController2 alloc] initWithNibName:@"ViewController2" bundle:nil]; 

self.popOverController = [[UIPopoverController alloc] initWithContentViewController:viewController2]; 

popOverController.popoverContentSize = CGSizeMake(350, 216); //or whatever size you need 

//this will present the view controller from the sender's frame, assuming this code is used inside an IBAction 
//and the popover's arrow will point down 
[popOverController presentPopoverFromRect:[sender frame] inView:self.view permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 

[viewController2 release]; 

[popOverController release]; 

這幾乎是它... 如果您遇到任何問題,我會盡量給你更多的相關信息。

P.S.我不是說這是做這件事的最好方式,我有不到一年的iOs經驗,但這就是我們通常在工作的地方做的事

+0

它完全回答,我也理解了一切。非常感謝Bogdan!你可以檢查我的項目(S)在我的博客,如果你有興趣http://julienbayle.net – gluon

+0

我測試過,它的工作原理。但是,在VC2.mm文件中,在與一些UI元素(滑塊等)相關的IBAction中,當我修改一個值時,我有一個奇怪的崩潰EXEC_BAD_ACCESS與最終目標控制器有關...挖掘..我分配的事實在同一個IBAction中釋放popover和VC 2是沒問題的。 ..? – gluon

+0

是的,沒關係。崩潰日誌告訴你什麼錯誤?另外,嘗試啓用NSZombies,這通常會在處理EXEC_BAD_ACCESS錯誤時幫助很大http://stackoverflow.com/q/5386160/855738 – BBog

相關問題