iOS 上未显示汉堡菜单。棱镜问题、Xamarin 问题或我的问题
Hamburger menu not showing on iOS . Prism issue, Xamarin issue or my issue
我正在尝试实现带有汉堡菜单的 masterDetail 应用程序。
它在 android 中工作,但在 iOS 和 "FileNotFoundException" 上崩溃并显示默认而不是图标。
我已将图标添加到 iOS。资源项目,但仍然没有显示,主页面和导航页面都有图标。
我是不是做错了什么?
任何解决方法?
非常感谢
app.xaml
public partial class App : PrismApplication
{
public App(IPlatformInitializer initializer = null) : base(initializer) { }
protected override void OnInitialized()
{
try
{
InitializeComponent();
NavigationService.NavigateAsync("MainMasterDetail/MyNavigationPage/MainPage",animated:false);
}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
}
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<MainMasterDetail,MainMasterDetailViewModel>();
Container.RegisterTypeForNavigation<MyNavigationPage,MyNavigationPageViewModel>();
Container.RegisterTypeForNavigation<MainPage>();
Container.RegisterTypeForNavigation<ViewA,ViewAViewModel>();
Container.RegisterTypeForNavigation<ViewB,ViewBViewModel>();
}
}
MainMasterDetails.xaml
<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage 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"
prism:ViewModelLocator.AutowireViewModel="True"
x:Class="HelloBurgerMenu.Views.MainMasterDetail"
Title="MainMasterDetail" Icon="humburger.png">
<MasterDetailPage.Master>
<ContentPage Title="Default">
<StackLayout>
<Button Text="MainPage" Command="{Binding NavigateCommand}" CommandParameter="MyNavigationPage/MainPage" />
<Button Text="ViewA" Command="{Binding NavigateCommand}" CommandParameter="MyNavigationPage/ViewA" />
<Button Text="ViewB" Command="{Binding NavigateCommand}" CommandParameter="MyNavigationPage/ViewB" />
</StackLayout>
</ContentPage>
</MasterDetailPage.Master>
</MasterDetailPage>
MyNavigationPage
<?xml version="1.0" encoding="utf-8" ?>
<NavigationPage 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"
prism:ViewModelLocator.AutowireViewModel="True"
x:Class="HelloBurgerMenu.Views.MyNavigationPage"
Icon="humburger.png">
</NavigationPage>
尝试在主页而不是主页详细信息中指定图标
public MasterPage()
{
InitializeComponent();
if (Device.RuntimePlatform == Device.iOS)
{
Icon = "menu.png";
}
}
您的 NavigationPage 中不能有内容。删除 NavigationPage 中的所有 XAML。
看看这个样本:https://github.com/xamarin/xamarin-forms-samples/tree/master/Navigation/MasterDetailPage
我正在尝试实现带有汉堡菜单的 masterDetail 应用程序。 它在 android 中工作,但在 iOS 和 "FileNotFoundException" 上崩溃并显示默认而不是图标。
我已将图标添加到 iOS。资源项目,但仍然没有显示,主页面和导航页面都有图标。
我是不是做错了什么? 任何解决方法? 非常感谢
app.xaml
public partial class App : PrismApplication
{
public App(IPlatformInitializer initializer = null) : base(initializer) { }
protected override void OnInitialized()
{
try
{
InitializeComponent();
NavigationService.NavigateAsync("MainMasterDetail/MyNavigationPage/MainPage",animated:false);
}
catch (Exception e)
{
Debug.WriteLine(e.ToString());
}
}
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<MainMasterDetail,MainMasterDetailViewModel>();
Container.RegisterTypeForNavigation<MyNavigationPage,MyNavigationPageViewModel>();
Container.RegisterTypeForNavigation<MainPage>();
Container.RegisterTypeForNavigation<ViewA,ViewAViewModel>();
Container.RegisterTypeForNavigation<ViewB,ViewBViewModel>();
}
}
MainMasterDetails.xaml
<?xml version="1.0" encoding="utf-8" ?>
<MasterDetailPage 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"
prism:ViewModelLocator.AutowireViewModel="True"
x:Class="HelloBurgerMenu.Views.MainMasterDetail"
Title="MainMasterDetail" Icon="humburger.png">
<MasterDetailPage.Master>
<ContentPage Title="Default">
<StackLayout>
<Button Text="MainPage" Command="{Binding NavigateCommand}" CommandParameter="MyNavigationPage/MainPage" />
<Button Text="ViewA" Command="{Binding NavigateCommand}" CommandParameter="MyNavigationPage/ViewA" />
<Button Text="ViewB" Command="{Binding NavigateCommand}" CommandParameter="MyNavigationPage/ViewB" />
</StackLayout>
</ContentPage>
</MasterDetailPage.Master>
</MasterDetailPage>
MyNavigationPage
<?xml version="1.0" encoding="utf-8" ?>
<NavigationPage 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"
prism:ViewModelLocator.AutowireViewModel="True"
x:Class="HelloBurgerMenu.Views.MyNavigationPage"
Icon="humburger.png">
</NavigationPage>
尝试在主页而不是主页详细信息中指定图标
public MasterPage()
{
InitializeComponent();
if (Device.RuntimePlatform == Device.iOS)
{
Icon = "menu.png";
}
}
您的 NavigationPage 中不能有内容。删除 NavigationPage 中的所有 XAML。
看看这个样本:https://github.com/xamarin/xamarin-forms-samples/tree/master/Navigation/MasterDetailPage