首页 > 解决方案 > Xamarin.iOS NavigationController.SetToolbarHidden = false 无法正常工作

问题描述

我想要做什么:
我希望本机 iOSNavigation toolbar可见,如您在这张图片中看到的那样(具有旧的 iOS 风格,但它用作说明性材料): 在此处输入图像描述

但我的问题是,本机UINavigationController工具栏覆盖了整个屏幕。

为了重现我的问题,我在 Windows 上使用 Microsoft Visual Studio 2017 创建了一个简单的空白跨平台(Android 和 iOS)应用程序。
我做的第一件事是MainPage在 a中显示NavigationPage(MainPage 需要在 NavigationController 中显示),所以我将 App.xaml.cs 中的代码从

MainPage = new MainPage();

对此

MainPage = new NavigationPage(new MainPage());

为了使问题更加明显,我在 MainPage.xaml.cs 构造函数中添加了以下行。

BackgroundColor = Color.Blue;

现在我为MainPage.
自定义渲染器看起来完全像这样

[assembly: ExportRenderer(typeof(MainPage), typeof(MainPageRenderer))]

namespace App1.iOS {
    class MainPageRenderer : PageRenderer {
        public override void ViewWillAppear(bool animated) {
            base.ViewWillAppear(animated);

            NavigationController.SetToolbarHidden(false, animated);
        }
    }
}

现在,当我在 iPhone 模拟器上启动应用程序时,它看起来像这样(工具栏覆盖整个屏幕):

在此处输入图像描述

标签: xamarinxamarin.iosuinavigationcontrollertoolbar

解决方案


推荐阅读