2010-12-12 10 views
2

こんにちはMonoTouchでのユーザー、 にゼロになりますそのようなViewControllerを:イベントは、私はそうのようなカスタムUIViewの中で宣言したカスタムイベントを持っているこの奇妙な状況があるMonoTouchで

SelectableView s; 
... 
SelectableView.SelectionChanged += HandleSelectionChanged; 

は、私がチェックし、必要なすべてのオブジェクトがまだメモリ内に存在し、ゴミが収集されていないことを保証しています。

私は、イベントが割り当てと描画の間でいつかnullになることを発見しています。 誰かが前にこの問題に遭遇しましたか?または、私はMonoTouchでのイベントの使用に明らかに間違ったことをしていますか?

編集: いくつかの追加情報 - UIViewはxibファイルから読み込まれます。私はちょうどxibからロードされていないUIViewで試して、すべて正常に動作します:私は少し唖然としています。

EDIT 2: さらに詳しい情報:xibからロードされたUIViewで設定されたすべてのプロパティもnullになるようです!

var v = new SelectableView(NSBundle.MainBundle.LoadNib("SelectableView", this, null).ValueAt(0)); 

が、私はその後、V上でプロパティを設定します:

v.SomeProperty = s; 

SomePropertyがnullのレンダリング時間をすることで は、ここで私はXIBからのUIViewをロードするために使用するコードです。

乾杯 Naren

+0

異なるスレッドからプロパティを設定/アクセスしていますか? – kwcto

答えて

1

私は、Interface BuilderのはUIViewsを作成し使用しようとしている多くの問題に遭遇しました。私は2つの回避策を見つけました:1)UIViewControllerを代わりに使用します。これは、かなり多くのメモリを使い果たします。または2)UIViewをコードで作成します(xibファイルなし)。

ほとんどの場合、最初のオプションを使用することになります。現在ロードされているビューコントローラーの数に注意してください。

+0

うん。それが私がやったことです。確認していただいてありがとうございます :) – Naren

関連する問題