El menú Xamarin Forms Shell Hamburger no se muestra en iOS en la primera navegación

Aug 20 2020

Tengo una aplicación Shell de Xamarin Forms con un menú de hamburguesas. Cuando abro la aplicación no puedo ver el menú de hamburguesas en mi iPhone (pero sí en mi Android). Cuando navego a algún lugar y vuelvo, el ícono de la hamburguesa aparece como se esperaba. Para manejar el menú de hamburguesas, confío en el código generado por defecto de la plantilla de shell de la aplicación y acabo de agregar algunos elementos adicionales al menú.

¿Cómo puedo decirle a Shell que siempre muestre mis íconos de menú?

Github Enlace al proyecto:https://github.com/NPadrutt/MoneyFox.Windows/tree/mobile-redesign

Respuestas

1 LucasZhang-MSFT Aug 20 2020 at 18:04

Es causado por el renderizador personalizado.

en 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);

El código anterior volverá a ordenar el elemento en NavigationBar . Lo que causará el problema. La solución más fácil es no usar el renderizador. En el caso parece que no tiene ningún efecto evidente.

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