2011-12-24 47 views
5

我必須在一個splitController的左側顯示一個popOver,我初始化一個導航控制器的popOver。但是,當我顯示popOver我的應用程序崩潰。UIPpOverController在UISplitViewController裏面

Impostazioni *settings = [[Impostazioni alloc] initWithStyle:UITableViewStyleGrouped]; 
settings.title = NSLocalizedString(@"SETTINGS", nil); 
settings.contentSizeForViewInPopover = kContentSizeOfPopOver; 
UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:settings]; 
nav.navigationBar.tintColor = kTintColorNavigationBar; 
nav.contentSizeForViewInPopover = kContentSizeOfPopOver; 
UIPopoverController *popOver = [[UIPopoverController alloc] initWithContentViewController:nav]; 
[popOver presentPopoverFromBarButtonItem:self.navigationItem.rightBarButtonItem permittedArrowDirections:UIPopoverArrowDirectionDown animated:YES]; 

這是我的代碼。有任何想法嗎?

編輯:崩潰即使我只設置一個的viewController不是SplitController:/而與空的ViewController:/

+3

你可以發佈崩潰日誌,也許與NSZombieEnabled http://stackoverflow.com/questions/2190227/how-do-i-set-nszombieenabled-in-xcode-4 – Ecarrion 2011-12-24 18:01:50

+0

我已經設置NSZombie啓用,但沒有日誌:/ – 2011-12-24 18:25:58

+0

你也在泄漏記憶。您應該釋放所有設置,導航和popOver。 – 2011-12-30 19:34:08

回答

2

(可能重複的Error using UIPopoverController

總之,你需要保留UIPopoverController莫名其妙。通過爲其定義屬性或手動管理引用計數。使用ARC時,後者不是選項,因此您需要存儲參考。

0

我相信你需要一個實例變量來保存popoverController。否則,在包含您顯示的代碼的方法完成後,沒有任何內容會保留您的彈出窗口。與向視圖添加子視圖時不同,視圖會保留子視圖。同樣的事情不會發生在popovers上。