Search code examples
xamarinxamarin.formsxamarin.iosuinavigationbarrenderer

Xamarin.Forms UINavigationBar in PageRenderer


I have a page renderer for camera and I want to put bottom menu on this renderer page in native not Xamarin.Forms page. How can I achieve this?


Solution

  • Adjust the Frame of View and NavigationBar in PageRenderer.

    Create Custom Renderer for Page named CustomPageRender.

    [assembly: ExportRenderer(typeof(Page), typeof(CustomPageRender))]
    namespace FormsApp2.iOS
    {
    class CustomPageRender :PageRenderer
    {
        public override void ViewWillLayoutSubviews()
        {
            base.ViewWillLayoutSubviews();
            if (this.NavigationController != null)
            {
                CGRect rect = View.Frame;
                rect.Y = -44;
                View.Frame = rect;
    
                CGRect NavRect = NavigationController.NavigationBar.Frame;
                NavRect.Y = UIScreen.MainScreen.Bounds.Height - 44;
                NavigationController.NavigationBar.Frame = NavRect;
            }
        }
    }
    }