Привет пользователям Monotouch,
У меня есть странная ситуация, когда у меня есть пользовательское событие, объявленное в пользовательском UIView, например:
public delegate void SelectionChangedHandler(SelectableView selectedView, bool selected);
public event SelectionChangedHandler SelectionChanged;
Затем я назначаю этот обработчик в методе инициализации viewcontroller следующим образом:
SelectableView s;
...
SelectableView.SelectionChanged += HandleSelectionChanged;
Я проверил и убедился, что все необходимые объекты все еще существуют в памяти и не были собраны в мусор.
Я обнаружил, что событие становится нулевым между назначением и чертежом.
Кто-нибудь сталкивался с этой проблемой раньше? Или я делаю что-то явно неправильное в использовании событий в MonoTouch?
EDIT:
Некоторая дополнительная информация - UIView загружается из файла XIB. Я только что попытался с UIView не загружен из XIB, и все работает отлично: | Я немного ошеломлен.
РЕДАКТИРОВАТЬ 2:
Еще больше информации: все свойства, установленные в UIView, загруженном из xib, также становятся нулевыми!
Вот код, который я использую для загрузки UIView из xib:
var v = new SelectableView(NSBundle.MainBundle.LoadNib("SelectableView", this, null).ValueAt(0));
Затем я устанавливаю свойство v:
v.SomeProperty = s;
По времени визуализации SomeProperty имеет значение null.
Приветствие
Naren