Проблемы с выходом iPhone, Monotouch и XIB - PullRequest
1 голос
/ 09 января 2011

У меня проблема с отображением элементов управления в подпредставлении на поля в контроллере-владельце. В частности, я назначил розетки для каждого из моих «элементов управления» владельцу файла. Затем Monotouch сгенерировал код для файла xib designer.cs контроллера, чтобы ссылаться на эти элементы управления как на свойства класса контроллера. Тем не менее, когда я запускаю свой код; Я получаю объект ноль ошибок при попытке установить свойства на элементах управления. Копаться в проблеме с отладчиком; похоже, что GetNativeField возвращает ноль при попытке получить доступ к розеткам по их именам из файла XIB.

У кого-нибудь есть идеи, почему это происходит? Я проверил файл .xib и сгенерированный код; имена Outlet, Property и Field соответствуют друг другу.

Ответы [ 3 ]

0 голосов
/ 14 января 2011

Обратите внимание, что выходы будут доступны только после загрузки представления, и это происходит в LoadView() или при доступе к свойству UIViewController «View» (это загрузит представление неявно).Только после этого содержимое IB создается и становится доступным для использования.

Поэтому, если вы хотите что-то изменить, вы должны либо вручную вызвать LoadView(), либо переопределить его в своем представлении, вызвать base.LoadView(), а затемполучить доступ к розеткам.

0 голосов
/ 19 января 2011

Я выяснил, что стало причиной проблемы;это было то, как я помещал контроллер в стек:

using(var batteryController = new BatteryController()){

    navigationController.PushViewController(batteryController,true);

}

Кажется, что при вызове dispose на контроллере ресурс NIB удаляется из памяти;который вызывал проблему.

Однако, это поднимает другой вопрос.Разве вы не должны вызывать dispose на новом контроллере, когда он помещен в стек?В цели C, когда вы помещаете контроллер в стек;Ваш должен позвонить релиз позже.Так что же я тогда делаю не так?

0 голосов
/ 12 января 2011

вы должны добавить розетки в AppDelegate. попробуйте также в моем блоге, это видео простого калькулятора, оно на испанском, но если вы посмотрите его самоочевидно, вы можете посмотреть его здесь http://alexsoto.me/calculadora-monotouch, это должно помочь вам начать :) помогает Удачи, если я могу помочь вам во всем остальном, просто дайте мне знать

Редактировать: также вы можете проверить это видео, оно использует подпредставления, также должно помочь вам, это на английском http://www.alexyork.net/blog/post/Selecting-a-contact-from-the-Address-Book-with-MonoTouch.aspx

...