如何以 xamarin 形式将一个内容页面从客户端项目

How to navigate one Content page to another Content page from client project (IOS/Android) in xamarin forms?(如何以 xamarin 形式将一个内容页面从客户端项目(IOS/Android)导航到另一个内容页面?)
本文介绍了如何以 xamarin 形式将一个内容页面从客户端项目(IOS/Android)导航到另一个内容页面?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 xamarin 表单中将一个内容页面从客户端项目导航到另一个内容页面?

How to navigate one content page to another content page from client project in xamarin forms?

我已经以不同的方式在每个平台上实现了推送通知.我需要从当前内容页面导航到另一个内容.

I have done implementing push notification in each platform in different way. I need to navigate to another content from current content page.

我尝试在 GCMService 的 OnMessage 方法中使用以下代码.我的问题是第二个导航内容页面的构造函数被调用并成功调试.但是我的屏幕仍然显示当前页面而不显示第二个导航内容页面.

i try to use below code in GCMService's OnMessage method. My Problem is Second navigation content page's constructor are called and debug successfully. but my screen still display current page not to display second navigation content page.

App.Current.MainPage.Navigation.PushAsync (new SecondNavigationContentPage());

推荐答案

主页"必须是导航页面才能使用推送弹出导航进行导航.你有几个选择.

"Main Page" has to be a navigation page in order to navigate with the push pop navigation. You have a couple of options.

选项 1:

用您的新页面替换 MainPage 并使用内容页面.

Swap out MainPage with your new page and use content pages.

App.Current.MainPage = your new content page

选项2:(可能是更好的选择)

Option 2: (Probably the better option)

使 App.Current.MainPage 成为 NavigationPage 而不是 ContentPage,然后将您的第一个内容页面推送到它.当您需要转到第二个内容页面时,请使用推送导航架构.

Make App.Current.MainPage a NavigationPage rather than a ContentPage then push your first content page to it. When you need to go to the second content page use the push navigation architecture.

App.Current.MainPage = new NavigationPage;
App.Current.MainPage.Navigation.PushAsync(Page1);
App.Current.MainPage.Navigation.PushAsync(Page2);

文档:http://developer.xamarin.com/guides/cross-platform/xamarin-forms/controls/pages/

更新

请注意,由于这个答案已经出现了更好的导航方式,例如 docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/... app shell routing.

Note that since this answer much better ways have come along for navigation such as docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/… app shell routing.

其他选择是 Prism MVVM 或您自己的视图模型定位器 prismlibrary.com/docs/viewmodel-locator.html.使用这种内置导航的缺点是它缺少视图模型来查看模型导航,并且依赖于页面到页面,这会导致不必要的视图耦合以及简单笨拙的导航.

Other choices are Prism MVVM or your own view model locator prismlibrary.com/docs/viewmodel-locator.html. The short coming in using this built in navigation is it lacks view model to view model navigation and depends on page to page which causes unwanted coupling of views and just plain clunky navigation.

这篇关于如何以 xamarin 形式将一个内容页面从客户端项目(IOS/Android)导航到另一个内容页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)