How to navigate one Content page to another Content page from client project (IOS/Android) in xamarin forms?(如何以 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)导航到另一个内容页面?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何以 xamarin 形式将一个内容页面从客户端项目


基础教程推荐
- 为什么Flurl.Http DownloadFileAsync/Http客户端GetAsync需要 2022-09-30
- 如何在 IDE 中获取 Xamarin Studio C# 输出? 2022-01-01
- 有没有办法忽略 2GB 文件上传的 maxRequestLength 限制? 2022-01-01
- SSE 浮点算术是否可重现? 2022-01-01
- MS Visual Studio .NET 的替代品 2022-01-01
- rabbitmq 的 REST API 2022-01-01
- 如何激活MC67中的红灯 2022-01-01
- c# Math.Sqrt 实现 2022-01-01
- 将 Office 安装到 Windows 容器 (servercore:ltsc2019) 失败,错误代码为 17002 2022-01-01
- 将 XML 转换为通用列表 2022-01-01