Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/95.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin表单iOS带导航页的选项卡式页面_Ios_Navigation_Xamarin.forms_Navigationbar_Tabbedpage - Fatal编程技术网

Xamarin表单iOS带导航页的选项卡式页面

Xamarin表单iOS带导航页的选项卡式页面,ios,navigation,xamarin.forms,navigationbar,tabbedpage,Ios,Navigation,Xamarin.forms,Navigationbar,Tabbedpage,所以,Xamarin的拥护者和其他人,我邀请你们所有人尝试并回答我怎样才能拥有iOS的带标签页的导航页面 听起来很简单,不是吗?对于android来说,没有烦恼,没有问题,没有什么不寻常的事情,可以定制我需要的任何东西 另一方面,对于iOS来说,尽管有人告诉我,我不理解Xamarin的做法(或者换句话说,为了让它真正起作用,需要采取的逃生路线),但我不能让导航页面和标签页面共存,没有问题 发生的情况如下: if (navigation page contains tabbed page) {

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

这就是我所做的。在App.cs(或主项目类)中,您需要创建一个包含选项卡页的新NavigationPage,使用导航控制器,您将拥有一个导航上下文,并可以使用它推送下一页,如果您不想在顶部有导航栏,您可以推送ModalPage或使用
NavigationPage.SetHasNavigationBar(此为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";
    }
}

这就是我所做的。在你的App.cs(或主项目类)中您需要创建一个包含选项卡页的新NavigationPage,使用导航控制器,您将拥有一个导航上下文,并可以使用该上下文推送下一页。如果不想在顶部有导航栏,您可以推送ModalPage或使用
NavigationPage.SetHasNavigationBar(此,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";
    }
}

您是否使用了任何MVVM框架?您是否为您的
内容页面
设置了图标和标题?没有,是的。没有遵循任何框架,东方经理。我个人尝试了该MVVM,但最终还是更喜欢mvc,对我来说,它更机器人化、更简单。至于内容页面,我在内容页面中设置了图标、标题和w在设置选项卡式页面时,必须在该选项卡式页面的每个子页面上将其设置为每个导航页面。您是否使用任何MVVM框架?是否为您的
ContentPage
提供图标和标题?否,是的。没有遵循任何框架,经理Orientirons。我亲自尝试了该MVVM,但最终更喜欢mvc,而不是机器人这对我来说不那么复杂。至于内容页面,我在内容页面和设置选项卡页面时都设置了图标和标题,但最后不得不在每个导航页面上设置它,在这个选项卡页面的每个子页面上。非常感谢你的帮助。尽管我很生气,但我忘了提到我只能使用XAML(经理有点狂热)唯一的解决方案(未经批准,因为根据他们的说法,我必须只在页面中设置标题和图标),是按照我的else if场景的原则,为每个导航页面设置标题和图标他们也不赞成,因为不是使用一个导航页面,而是为每个页面使用一个(代表每个选项卡)。他们期待奇迹出来,因为我只能使用XF控件(没有海关,也没有扩展表页),我会接受你的答案,我认为它是有效的。(我实际上来自本地Android背景,这意味着没有唯一正确的答案,有可能,有知识,最重要的是你能做些什么使它工作,只要它工作。如果你能改进它,就去做,如果不能,就离开它或稍后再试,因为如果它工作,它就足够好了,而且没有一件事必须是replica还有些别的东西。要有创意,遵循某些原则,但架构取决于你。一旦我进入了微软世界(不太受欢迎的移动操作系统的创建者),一切都消失了…@pemq和Xaml没有多大区别,我想(和你的客户)你可以从代码隐藏中执行按钮或导航事件,你只需要使用Xaml进行UI和绑定有一个名为Gorilla Player的预览器:什么?有一个用于XF的Xaml预览器?:哦,最后,有一些东西可以使用。这很好。非常感谢你的帮助。尽管我很生气,但我忘了提到我只能使用XAML(manager有点狂热)和唯一的解决方案(未经批准,因为根据他们,我必须只在页面中设置标题和图标),是按照我的else if场景的原则为每个导航页面设置标题和图标他们也不赞成,因为不是使用一个导航页面,而是为每个页面使用一个(代表每个选项卡)。他们期待奇迹出来,因为我只能使用XF控件(没有海关,也没有扩展表页),我会接受你的答案,我认为它是有效的。(我实际上来自本地Android背景,这意味着没有唯一正确的答案,有可能,有知识,最重要的是你能做些什么使它工作,只要它工作。如果你能改进它,就去做,如果不能,就离开它或稍后再试,因为如果它工作,它就足够好了,而且没有一件事必须是replica还有些别的东西。要有创意,遵循某些原则,但架构取决于你。一旦我进入了微软世界(不太受欢迎的移动操作系统的创建者),一切都消失了…@pemq和Xaml没有多大区别,我想(和你的客户)您可以从代码隐藏中执行按钮事件或导航,您只需使用Xaml执行UI和绑定。有一个名为Gorilla Player的预览程序:什么?有一个用于XF的Xaml预览程序?:o最后,还有一些可以使用的东西。这很好吗?