2017-08-03 33 views
1

我想實現一個漢堡菜單masterDetail應用程序。 它在android中工作,但在iOS上使用「FileNotFoundException」崩潰,並顯示默認圖標。在iOS上不顯示漢堡菜單。棱鏡問題,Xamarin問題或我的問題

我已將圖標添加到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> 

回答

0

你不能有內容你的導航頁面。刪除您的導航頁面中的所有XAML。

看看這個例子:https://github.com/xamarin/xamarin-forms-samples/tree/master/Navigation/MasterDetailPage

+0

感謝喜但是這是一個複製和粘貼瞧不起是空的。通過在內容頁面上設置圖標,它甚至會認爲它與「filenotfound」崩潰,但圖標在那裏。是否應該在向前導航時顯示backtitle而不是Hamburger.png? – developer9969

+0

如果您刪除漢堡包圖標,它是否工作?如果是這樣,你就知道它有什麼問題了。 –

+0

你不會把漢堡包圖標添加到導航頁面,你可以將它添加到主頁面。 –

1

嘗試指定母版的圖標不MasterDetail

public MasterPage() 
{ 
    InitializeComponent(); 
    if (Device.RuntimePlatform == Device.iOS) 
    { 
     Icon = "menu.png"; 
    } 
}