Смешивание видов из проектов Core и iOS Platform в виде вкладок через MvvmCross - PullRequest
0 голосов
/ 10 апреля 2020

Использование последней версии MvvmCross v.6.4.2:

У меня есть несколько видов в моем основном проекте, которые отображаются в виде вкладок. В моем проекте iOS Platform есть представление, которое мне также нужно отобразить как вкладку. Когда я добавляю MvxViewController<> из моего iOS проекта платформы, приложение вылетает. В частности, если я не установлю представление как вкладку через [MvxTabbedPagePresentation], то представление будет отображаться нормально, оно просто не будет отображаться как вкладка. Я попытался MvxTabbedViewController<> с тем же результатом, нулевое исключение, выданное в:

в MvvmCross.Forms.Presenters.MvxFormsPagePresenter.CreatePage (System.Type viewType, MvvmCross.ViewModels.MvxViewModelReRe Атрибут MvvmCross.Presenters. Запрос .ViewModels.MvxViewModelRequest, атрибут MvvmCross.Forms.Presenters.Attributes.MvxPagePresentationAttribute, System.Boolean closeModal, System.Boolean closePlatformViews, System.Boolean showPlatformViews) [0x000a8 \ m. \ MvxFormsPagePresenter.cs: 140 в MvvmCross.Forms.Presenters.MvxFormsPagePresenter.ShowTabbedPage (представление System.Type, MvvmCross.Forms.Presenters.Attributes.MvxTabbedPagePresentationAode_ModemDMMSMTM) \ a \ 1 \ s \ MvvmCross.Forms \ Presenters \ MvxFormsPagePresenter.cs: 571 в MvvmCross.Forms.Platforms. Ios .Presenters.MvxFormsIosViewPresenter.Show (MvvmCross.ViewModels.MvxViewMell: MExxViewMode: 0: 0) \ 1 \ s \ MvvmCross.Forms \ Platforms \ Ios \ Presenters \ MvxFormsIosViewPresenter.cs: 42 в MvvmCross.Base.MvxMainThreadAsyncDispatcher + <> c__DisplayClass1_0.b__0 () [0x00022] в D: \ m \ sv MvxMainThreadAsyncDispatcher.cs: 27 в System.Runtime.CompilerServices.AsyncMethodBuilderCore + <> c .b__7_0 (состояние System.Object) [0x00000] в /Library/Frameworks/Xamarin.iOSersrac .iOS / mcs / class / reference source / mscorlib / system / runtime / compilerservices / AsyncMethodBuilder.cs: 1021 в Foundation.NSAsyncSynchronizationContextDispatcher.Apply () [0x00000] в /Library/Frameworks/Xamarin.131026ions .0.13 / src / Xamarin.iOS / Foundation / NSAction.cs: 178 --- Трассировка конца стека из предыдущего местоположения, в котором было сгенерировано исключение ---

Vi ew на самом деле виден в течение короткой секунды, прежде чем ловится исключение, поэтому он находит .xib и правильно рендерится. Судя по исключению, он не может найти объект page или pageAttribute на 115?

if (string.IsNullOrEmpty(page.Title) && !string.IsNullOrEmpty(pageAttribute.Title))

Вот как выглядит ViewController в проекте iOS:

    /// take this attribute out and it renders fine, just not as a tab:
    [MvxTabbedPagePresentation(WrapInNavigationPage = false, Position = TabbedPosition.Tab, Animated = false, Title = "Please Work...")]
    public partial class TestViewController : MvxViewController<TestViewModel>
    {
        public TestViewController() : base("TestViewController", null)
        {   
        }

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

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

Есть идеи? Я думаю, что у меня все настроено правильно, так как мои другие виды отображаются нормально, проблема только в этом iOS -specifi c. Заранее спасибо!

...