2011-07-01 71 views
0

我得到以下錯誤,只在模擬器上,而不在iPad本身!Monotouch - UIPopoverController的iPad模擬器問題

Monotouch.Foundation.MonoTouchException has been thrown 
"Objective-C exception thrown. Name: NSGenericException 
Reason: - [UIPopoverController dealloc] reached while popover is still visible." 

有沒有人有想法如何解決這個問題?

+0

爲米格爾的答案,你必須創造一個UIPopoverController實例變量。 –

回答

2

這將導致問題...

private void GetPopsUps() 
{   
UIPopoverController uipoc = new UIPopoverController(new PopController()); 
uipoc.PopoverContentSize = new SizeF(200f, 300f); 
uipoc.PresentFromRect (new RectangleF(0,0, 200, 300), this.View, 
UIPopoverArrowDirection.Up, true); 
} 

這解決了它(對我來說)..

UIPopoverController uipoc; 
private void GetPopsUps() 
{   
uipoc = new UIPopoverController(new PopController()); 
uipoc.PopoverContentSize = new SizeF(200f, 300f); 
uipoc.PresentFromRect (new RectangleF(0,0, 200, 300), this.View, 
UIPopoverArrowDirection.Up, true); 
} 
+0

謝謝我會看看這個 –

2

我的猜測是你讓垃圾回收器刪除引用。

我很想看看這是如何發生的,所以我可以在將來添加一個特例,但現在,請嘗試保留對UIPopover和UIPopoverController的引用。

+0

錯誤在實際設備上怎麼沒有發生? –

+0

模擬器比實際的設備更積極地運行GC。這樣可以幫助捕捉真實設備上的GC問題,這些設備的內存容量比您可能在模擬器上或在模擬器上進行測試的設備(因爲它將使用您的計算機提供的功率)要低得多。 – chrisntr

+0

我在Device中遇到了這個問題 – Krishnan