所以,Xamarin倡导者和其他人,我邀请大家尝试回答如何为iOS提供带标签页的导航页面?
听起来很简单,不是吗?对于Android,不用担心,没有问题,没有什么特别的,可以自定义我需要的任何东西。
另一方面,对于iOS,尽管我被告知我是一个不理解Xamarin实践的人(换句话说,我需要采取的逃生路线以便实际工作),不能有导航页面和标签页共存,没有问题。
以下是发生的事情:
if (navigation page contains tabbed page)
{
no title is shown in the navigation bar
}
else if (each content page for the tabbed page is contained in a navigation page)
{
no icon or title is shown in the tab bar
}
else
{
The company manager does not want any else, there has to be a navigation page to allow opening other pages from the contents in each tab, and there has to be tabbed page and navigation bar for iOS
}
现在他们在美国说的百万美元问题:我们怎样才能解决这个问题"神秘"?
非常感谢您提供所有答案和支持(关于使用这种......啊,工具,也称为Xamarin)。
答案 0 :(得分:4)
所以这就是我所做的。在您的App.cs(或主项目类)中,您需要创建一个包含TabbedPage的新NavigationPage,使用导航控制器您将拥有导航上下文,如果您不想,可以将您推送到下一页在顶部有一个导航栏,您可以推送ModalPages或使用NavigationPage.SetHasNavigationBar(this, false);
,代码段:
public class App : Application
{
public App ()
{
MainPage = new NavigationPage(new MainTabbedPage());
}
}
public class MainTabbedPage : TabbedPage
{
public MainTabbedPage()
{
Children.Add(new FirstPage());
Children.Add(new SecondPage());
}
}
public class SecondPage : ContentPage
{
public SecondPage()
{
Title = "Second Page";
var btn = new Button
{
Text = "Click me"
};
btn.Clicked += BtnBlicked;
Content = btn;
}
async void BtnBlicked(object sender, EventArgs e)
{
await Navigation.PushAsync(new ThirdPage());
}
}
public class ThirdPage : ContentPage
{
public ThirdPage()
{
Title = "Third Page";
}
}