Xamarin表单iOS带导航页的选项卡式页面
所以,Xamarin的拥护者和其他人,我邀请你们所有人尝试并回答我怎样才能拥有iOS的带标签页的导航页面 听起来很简单,不是吗?对于android来说,没有烦恼,没有问题,没有什么不寻常的事情,可以定制我需要的任何东西 另一方面,对于iOS来说,尽管有人告诉我,我不理解Xamarin的做法(或者换句话说,为了让它真正起作用,需要采取的逃生路线),但我不能让导航页面和标签页面共存,没有问题 发生的情况如下: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) {
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最后,还有一些可以使用的东西。这很好吗?