Ошибка Xamarin.iOS - ожидается, что окна приложений будут иметь контроллер корневого представления .... Использование статического связывания - PullRequest
0 голосов
/ 05 июля 2019

Я получаю эту ошибку:

Foundation.MonoTouchException: выдается исключение Objective C.Имя: NSInternalInconsistencyException Причина: ожидается, что окна приложений будут иметь корневой контроллер представления в конце запуска приложения

Использование Xamarin.iOS, если я использую в своем файле xaml такой тип привязки:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             xmlns:converters="clr-namespace:AppAlgorix.Converters"
             xmlns:resources="clr-namespace:AppAlgorix.Resources"
             prism:ViewModelLocator.AutowireViewModel="True"
             x:Class="AppAlgorix.Views.LoginPage">

    <ContentPage.Resources>
        <ResourceDictionary>
            <converters:MaskedCardConverter x:Key="cvtMaskedCard"></converters:MaskedCardConverter>
        </ResourceDictionary>
    </ContentPage.Resources>
    <ContentPage.Content>
        <StackLayout Orientation="Vertical" HorizontalOptions="Center" Padding="20">
            <StackLayout Orientation="Vertical" HorizontalOptions="FillAndExpand" VerticalOptions="Fill" HeightRequest="80">
                 <Label Text="SEJA BEM VINDO" HorizontalOptions="CenterAndExpand" FontSize="Large" FontAttributes="None" TextColor="{Binding Source={x:Static resources:AppParameters.AppLabelColorDefault}}"></Label>
            </StackLayout>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

Я также пробовал этот формат:

<Label Text="SEJA BEM VINDO" HorizontalOptions="CenterAndExpand"
FontSize="Large" FontAttributes="None" TextColor="{Binding
AppLabelColorDefault, Source={x:Static
resources:AppParameters}}"></Label>

Мой класс параметров это:

namespace AppAlgorix.Resources
{
    public static class AppParameters
    {
        public static string AppLabelColorDefault
        {
            get
            {
                var color = Parameters.ResourceManager.GetString("applabelcolordefault");
                return color;
            }
        }
    }
}

Мой проект Xamarin имеет Android и iOS.Этот подход работает с Android, но не работает с iOS.

Если я изменю свое мнение на это:

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:prism="clr-namespace:Prism.Mvvm;assembly=Prism.Forms"
             xmlns:converters="clr-namespace:AppAlgorix.Converters"
             prism:ViewModelLocator.AutowireViewModel="True"
             x:Class="AppAlgorix.Views.LoginPage">

    <ContentPage.Resources>
        <ResourceDictionary>
            <converters:MaskedCardConverter x:Key="cvtMaskedCard"></converters:MaskedCardConverter>
        </ResourceDictionary>
    </ContentPage.Resources>

    <ContentPage.Content>
        <StackLayout Orientation="Vertical" HorizontalOptions="Center" Padding="20">
            <StackLayout Orientation="Vertical" HorizontalOptions="FillAndExpand" VerticalOptions="Fill" HeightRequest="80">
                <Label Text="SEJA BEM VINDO" HorizontalOptions="CenterAndExpand" FontSize="Large" FontAttributes="None" TextColor="Black"></Label>
            </StackLayout>
        </StackLayout>
    </ContentPage.Content>

</ContentPage>

Я могу выполнить и увидеть свое представление в эмуляторе ...

Итак, я думаю, что моя проблема в этом формате привязки ...

Мой вопрос ... Как устранить эту ошибку в Xamarin.iOS, не ломая Xamarin.Android?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...