2013-06-06 3 views
0

Я пытаюсь получить mvvmcross, работающий для разработки iOS, и я могу заставить его работать, если у меня есть код, который я просматриваю, добавляя все необходимые элементы управления в код. Это работает, но это огромная боль, чтобы развиваться именно так. Я хочу работать с xib-файлами в xcode, чтобы определить интерфейс, но я не могу понять, как заставить это работать. У меня есть вид класса, как это:Работа с Mvvmcross и Xibs

[Register("FirstView")] 
public partial class FirstView : MvxViewController 
{ 
    public FirstView() : base("FirstView",null) 
    { 
    } 

    public FirstView(IntPtr handle) : base(handle) 
    { 
    } 


    public override void ViewDidLoad() 
    { 
     base.ViewDidLoad(); 
    } 
} 

Я добавить вид iPhone под названием «FirstView.xib», открыть его в Xcode и первая проблема, я бегу в том, что он создал представление, а не контроллер представления, поэтому я могу установить класс на FirstView. Поэтому я удаляю представление, добавляю UIViewController, и он позволяет мне установить класс на FirstView. Затем я перетаскиваю представление на свой контроллер представления и добавляю текстовое поле, ярлык и кнопку. Я выхожу из xcode, и Xamarin делает свою вещь и создает вторую половину моего частичного класса. Однако, когда я пытаюсь запустить код в симуляторе iPhone, он не работает. Он запускается, а затем сразу уходит, даже не демонстрируя моего взгляда.

Я вижу целую кучу вещей в окне вывода приложения в студии Xamarin, возможно, это актуально?

2013-06-06 10: 47: 13,666 MyAppIPhoneUI [26190: с07] окна приложений, как ожидается, иметь контроллер представления корня в конце запуска приложения 2013-06-06 10: 47: 13.668 MyAppIPhoneUI [26190: c07] TouchNavigation: Диагностика: 0.10 Навигация по запрошенному 2013-06-06 10: 47: 13.691 MyAppIPhoneUI [26190: c07] mvx: Диагностика: 0.13 Запрос равно null - если предположить, что это ситуация типа TabBar, где ViewDidLoad вызывается во время строительство ... исправление запроса сейчас - но не забудьте о проблемах с виртуальными вызовами во время строительства 2013-06-06 10: 47: 13.697 MyAppIPhoneUI [26190: c07] mvx: Warning: 0.13 Exception masked NullReferenceException: ссылка на объект не установлена экземпляр объекта в Cirr ious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel (Cirrious.MvvmCross.ViewModels.MvxViewModelRequest запрос, IMvxBundle savedState) [0x00000]

Любая идея, что может быть проблема? Возможно ли определить мой взгляд в xib и использовать mvvmcross? Я видел веб-сайт Slodge, где он использует xib для определения UITableCellView, но не для всего представления.

ответ

1

Из трассировки сетевого «не запускается» является проблемой делать с:

объекта не задана ссылка на экземпляр объекта на Cirrious.MvvmCross.ViewModels.MvxViewModelLoader.LoadViewModel

Я не уверен, что вызывает это - трудно сказать из трассы и описания - если вы поместите образец проекта где-нибудь, то кто-то из mvx может взглянуть.


В качестве альтернативы есть несколько более до даты видео для работы с XIBs

Они содержатся в этом N + 1 индекс - http://mvvmcross.wordpress.com

В частности, см:

+0

А? Странный. Я удалил свой класс представления и xib и выполнил (почти) именно то, что вы сделали в видео, чтобы добавить контроллер просмотра, и он сработал. Возможно, проблема была в том, что у меня сначала был вид, а не контроллер вида. Я начал смотреть это видео раньше, но не зашел так далеко. Благодарю. Одна моя странная вещь заключается в том, что мое решение в Xamarin теперь показывает две копии FirstModel.designer.cs и две копии FirstModel.xib (одна в папке просмотра и одна в корневой папке), что довольно странно. –

+0

Я полагаю, что шансы предыдущей проблемы связаны с некоторыми «владельцами» или «первыми респондентами» или другими настройками, скрытыми внутри xib - 4 года работы с этими вещами, и я до сих пор их не понимаю ... две копии файлов дизайнеров, надеюсь, исчезнут, если вы перезапустите XS, но, во всяком случае, зарегистрируйте это как ошибку с поддержкой xamarin (ему нужно исправление). – Stuart

+0

Еще раз спасибо Stuart. Я только начинаю разработку iOS, и мне кажется, что xcode активно борется со мной на каждом шагу! Проделав многое в прошлом с WPF, я очень ценю вашу работу с mvvmcross за то, что помог мне преодолеть разрыв с чем-то знакомым. –

Смежные вопросы