如何在Xamarin Forms中为iOS创建导航栏?

3
有没有在Xamarin Forms中为iOS创建导航栏的XAML支持?我在所有Xamarin支持、论坛和互联网上搜索过了。
目前我还不确定是否有支持,但如果已经发明了轮子,我真的不想重新发明。

编辑:

通过导航栏,我指的是这个东西:

enter image description here

1个回答

6
当您使用NavigationPage创建页面时,Xamarin.Forms会在iOS上自动创建一个导航栏。您还可以修改许多导航栏的内容,例如:
NavigationPage.SetBackButtonTitle(this, ""); // Empty text
NavigationPage.SetHasBackButton(this, false); // No back button
NavigationPage.SetTitleIcon (this, someIcon); // Set the icon

请参考以下文章,详细解释了ContentPage和NavigationPage之间的区别: Xamarin.Forms Pages: ContentPage and NavigationPage Xamarin的官方文档也很好地涵盖了导航: Hierarchial Navigation
您是否将根页面设置为NavigationPage类型?在您的App类中,应该有类似以下的内容:
MainPage = new ContentPage(); // etc.

将其更改为以下内容:

将其更改为类似于此的内容

MainPage = new NavigationPage(new FirstPageOfTheApp());
//FirstPageOfTheApp should be of type ContentPage.

综上所述,根页面需要是 NavigationPage 类型,而所有其他页面都应是 ContentPage 类型。

我已经尝试在App.xaml.cs和Page.xaml.cs中设置这些属性,但没有任何效果。我有一个新的Xamarin.Forms创建,我运行它,它没有导航栏:http://imgur.com/a/FLpXG - Andrei Rînea
你是否将根页面设置为 NavigationPage 类型?在你的 App 类中,应该有类似于 MainPage = new ContentPage 的代码。请将其更改为以下内容:MainPage = new NavigationPage(new FirstPageOfTheApp()); 其中 FirstPageOfTheApp 应该是 ContentPage 类型。因此,总结一下,根页面需要是 NavigationPage 类型,而其他所有页面都是 ContentPage 类型。希望这可以帮到你。 - Timo Salomäki
哇,看起来就是这样!我按照你说的在 App.xaml.cs 中进行了更改,现在它显示了返回按钮!(不是一开始就有,只有在第一次页面更改后才有,但我想这应该是正确的方式):) 谢谢! - Andrei Rînea
1
不客气!这只是代码的一个小改变,但结果非常好。 :) - Timo Salomäki

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接