Что я хочу сделать:
Я хочу, чтобы родная iOS Navigation toolbar
была видна, как вы можете видеть на этом рисунке (имеет старый стиль iOS, но служит иллюстративным материалом):
Но моя проблема в том, что собственная панель инструментов UINavigationController
покрывает весь экран.
Чтобы воспроизвести мою проблему, я создал простую кросс-платформу Blank (Android)и iOS) с Microsoft Visual Studio 2017 для Windows.
Первое, что я сделал, это отобразил MainPage
в NavigationPage
(что необходимо для отображения главной страницы в 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, онвыглядит так (панель инструментов покрывает весь экран):