1

所以,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)。

4

1 回答 1

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";
    }
}

在此处输入图像描述

于 2016-06-15T13:11:24.977 回答