2014-09-10 3 views
0

У меня есть приложение, и я тестировал его с Android довольно успешно, но теперь я пытаюсь добавить в iOS, и он, похоже, не работает вообще.Xamarin Forms MasterDetail Страница не работает на iOS

У меня есть MasterDetailPage, который я в основном копировал из проекта mobileCRM, который отлично работает для меня в Adroid и моем buildhost, но не в моей портированной версии.

public class RootPage : MasterDetailPage 
{ 
    OptionItem _previousItem; 

    public RootPage() 
    { 
     var optionsPage = new MenuPage { Icon = "Icon.png", Title = "menu" }; 

     optionsPage.Menu.ItemSelected += (sender, e) => NavigateTo(e.SelectedItem as OptionItem); 

     Master = optionsPage; 

     NavigateTo(optionsPage.Menu.ItemsSource.Cast<OptionItem>().First()); 
    } 

    void NavigateTo(OptionItem option) 
    { 
     if (_previousItem != null) 
      _previousItem.Selected = false; 

     option.Selected = true; 
     _previousItem = option; 

     var displayPage = PageForOption(option); 
     Detail = new NavigationPage(displayPage) 
     { 
      BarBackgroundColor = Helpers.Color.Orange.ToFormsColor() 
     }; 

     Detail.SetValue(TitleProperty, option.Title); 
     Detail.SetValue(IconProperty, option.Icon); 

     IsPresented = false; 
    } 

    static Page PageForOption(OptionItem option) 
    { 
     switch (option.Title) 
     { 
      case "Home": 
       return new HomePage(); 
      case "Circles": 
       return new CirclesPage(); 
      case "Settings": 
       return new SettingsPage(); 
      default: 
       throw new NotImplementedException("Unknown menu option: " + option.Title); 
     } 
    } 
} 
+0

Не могли бы вы объяснить «Не работает»? это рухнет? это плохо? –

+0

В строке заголовка нет текста, а внутренний контент пуст. в основном все, что вы видите, это пустая строка вверху, и вы можете выскочить из меню и щелкнуть по ссылкам, но деталь просто останется пустой белой страницей. Я установил точку останова, и он никогда не попадал в конструктор страницы. – BillPull

+0

Я могу подтвердить вопрос, исследуя. Это связано с тем, что NavigationPage является MD.Detail. –

ответ

0

Это похоже на ошибку в Xamarin.Forms, и я сообщил об этом.

Я был в состоянии воспроизвести проблему, но и в состоянии обойти его, заменив ListView в OptionPage по StackLayout из Buttons:

public MenuPage (MasterDetailPage mdpage) 
{ 
    Content = new StackLayout { 
     Children = { 
      new Button { Text = "Home", Command = new Command (() => {mdpage.Detail = new HomePage();mdpage.IsPresented = false;}) }, 
      new Button { Text = "Circles", Command = new Command (() => {mdpage.Detail = new CirclesPage();mdpage.IsPresented = false;}) }, 
      new Button { Text = "Settings", Command = new Command (() => {mdpage.Detail = new SettingsPage();mdpage.IsPresented = false;}) }, 
     } 
    }; 
} 

В одном из моих проектов, я использую TableView в Master, но здесь, как и ListView, это вызывает проблему.

+0

Я исследовал его. а не ошибка Xamarin.Forms, когда я начал работать. в проблеме отсутствовали значки. –

+0

Я сталкиваюсь с аналогичной проблемой, где я получаю пустой файл MasterDetailPage без заголовка заголовка или значка, хотя у меня есть те, которые установлены в ContentPage of Master. Я также использую TableView внутри Master. Не могли бы вы подробнее рассказать о недостающих значках, о которых вы говорили? – Zac

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