我想做什么:
我希望原生iOS Navigation toolbar
可以在此图片中看到(具有旧的iOS样式,但用作说明材料):
但是我的问题是,原生UINavigationController
工具栏覆盖了整个屏幕。
为重现我的问题,我在Windows上使用Microsoft Visual Studio 2017创建了一个简单的Blank跨平台(Android和iOS)应用程序。
我要做的第一件事是在MainPage
中显示NavigationPage
(要在NavigationController中显示MainPage,这是必需的),因此我将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模拟器上启动应用程序时,它看起来像这样(工具栏覆盖了整个屏幕):