如何以 xamarin 形式将一个内容页面从客户端项目(IOS/Android)导航到另一个内容页面?

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)导航到另一个内容页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Custom Error Queue Name when using EasyNetQ for RabbitMQ?(使用 EasyNetQ for RabbitMQ 时自定义错误队列名称?)
How to generate password_hash for RabbitMQ Management HTTP API(如何为 RabbitMQ 管理 HTTP API 生成密码哈希)
Rabbitmq Ack or Nack, leaving messages on the queue(Rabbitmq Ack 或 Nack,将消息留在队列中)
Setup RabbitMQ consumer in ASP.NET Core application(在 ASP.NET Core 应用程序中设置 RabbitMQ 消费者)
Specify Publish timeouts in mass transit(指定公共交通中的发布超时)
RabbitMQ asynchronous support(RabbitMQ 异步支持)