Меню гамбургера оболочки Xamarin Forms не отображается в iOS при первой навигации

Aug 20 2020

У меня есть приложение оболочки Xamarin Forms с гамбургер-меню. Когда я открываю приложение, я не вижу гамбургер-меню на моем iPhone (но на моем Android). Когда я куда-то перехожу и возвращаюсь, значок гамбургера появляется, как и ожидалось. Для работы с гамбургер-меню я полагаюсь на сгенерированный по умолчанию код шаблона оболочки приложения и просто добавил в меню несколько дополнительных элементов.

Как я могу указать оболочке, чтобы мои значки меню всегда отображались?

Github Ссылка на проект: https://github.com/NPadrutt/MoneyFox.Windows/tree/mobile-redesign

Ответы

1 LucasZhang-MSFT Aug 20 2020 at 18:04

Это вызвано Custom Renderer.

в MoneyFox.iOS -> Renderer-> CustomContentPageRenderer .

        ToolbarList.Sort((i1, i2) =>
                         {
                             return i1.Priority > i2.Priority
                                    ? -1 : 1;
                         });

        foreach(ToolbarItem itm in ToolbarList)
        {
            if(itm.Priority < 0)
                LeftNavList.Add(itm.ToUIBarButtonItem());
            else
                RightNavList.Add(itm.ToUIBarButtonItem());
        }

        navigationItem.SetLeftBarButtonItems(LeftNavList.ToArray(), false);
        navigationItem.SetRightBarButtonItems(RightNavList.ToArray(), false);

Приведенный выше код повторно отсортирует элемент на панели навигации. Что вызовет проблему. Самое простое решение - не использовать средство визуализации. В случае, кажется, не имеет очевидного эффекта.

//[assembly: ExportRenderer(typeof(ContentPage), typeof(CustomContentPageRenderer))]