2011-06-06 93 views
0

在我的應用程序中,我使用TabBar和其上的幾個項目。經過一段時間的使用應用程序隨機發生的項目消失。我使用託管在主fraim中的scrollView,此視圖打開幾個模式對話框 - 其中一個是全屏。我看不到TabBar項目消失的原因。有任何想法嗎?TabBar項目消失

+0

您是否動態創建了tabbar項目?只要好奇GC是否可以收集它們,如果你沒有將它們存儲在C#變量中。但是,如果您使用Interface Builder,這應該不是問題。 – jonathanpeppers 2011-06-06 13:54:34

+0

是的,我動態創建它們。我會嘗試將它們存儲在本地域中。 – Scarlaxx 2011-06-07 06:55:15

+0

存儲到本地字段沒有幫助。 TabBar項目在應用程序的更長時間使用後仍然消失。請注意,我只創建這些項目,我以後不會修改它們或更改或隱藏它們。我只創建它們並等待用戶觸摸。 – Scarlaxx 2011-06-07 07:37:08

回答

0

將它們存儲在「本地」字段將無濟於事。你需要將它們存儲在你的類的成員變量中。需要在您的應用程序的生命週期的某處存在對您的標籤欄項目的引用,以防止GC收集它們。

在WinForms中你不用擔心這個問題,你可以調用Controls.Add()(或WPF Children.Add()),它在內部向C#列表添加控件。 MonoTouch直接調用Objective-C的大多數東西,這是不知道GC。

+0

仍然沒有解決我的問題。我發現這不是隻有項目的問題,而是整個tabBar消失。但它可能(可能)不是垃圾收集,但由於某種原因根本不可見。我在頁面的WillRotate方法中設置其位置,並且引用不爲null。 – Scarlaxx 2011-06-27 13:01:29