使用带有AutoFac的Xamarin.Forms 4.0和Prism 7.1.04,我无法导航到堆栈中的最后一页。我已经在App.xaml.cs中注册了所有页面。导航到最后一页成功。在最后一页上调用NavigationAsync时,将同时输入Page和ViewModel的构造函数,但该页面不会呈现。
我尝试过的不起作用的事情:
useModalNavigation: true
添加到呼叫中。 我可以使用NavigationService通过GoBackAsync向后导航。
在App.xaml.cs中,我注册了以下类型:
protected override void RegisterTypes(IContainerRegistry containerRegistry)
{
// Register Pages for Navigation
containerRegistry.RegisterForNavigation<NavigationPage>();
containerRegistry.RegisterForNavigation<LoginPage, LoginViewModel>();
containerRegistry.RegisterForNavigation<CustomerSearchPage, CustomerSearchViewModel>();
containerRegistry.RegisterForNavigation<ConsentPage, ConsentViewModel>();
containerRegistry.RegisterForNavigation<RequestPage, RequestViewModel>();
containerRegistry.RegisterForNavigation<BankContextPage, BankContextViewModel>();
containerRegistry.RegisterForNavigation<CollectionEventsPage, CollectionEventsViewModel>();
containerRegistry.RegisterForNavigation<CollectionDetailsPage, CollectionDetailsViewModel>();
containerRegistry.RegisterForNavigation<CollectionItemsListPage, CollectionItemsListViewModel>();
containerRegistry.RegisterForNavigation<ItemDetailsPage, ItemDetailsViewModel>();
// ...
}
工作流程从LoginPage开始,以线性方式从一个页面前进到另一页面,直到到达第八页。由于某种原因,我无法导航到第九页。
App.xaml.cs: await NavigationService.NavigateAsync("NavigationPage/LoginPage");
LoginPage.xaml.cs: await NavigationService.NavigateAsync("CustomerSearchPage");
CustomerSearchViewModel.cs: await NavigationService.NavigateAsync("ConsentPage");
ConsentViewModel.cs:
var parameters = new NavigationParameters();
parameters.Add("consent", consent);
await NavigationService.NavigateAsync("RequestPage", parameters);
RequestViewModel.cs: await NavigationService.NavigateAsync("BankContextPage");
BankContextPageViewModel.cs: await NavigationService.NavigateAsync("CollectionEventsPage", parameters);
CollectionEventsViewModel.cs: var ret = await NavigationService.NavigateAsync("CollectionItemsListPage");
CollectionItemsListViewModel.cs: status = await NavigationService.NavigateAsync("ItemDetailsPage”, parameters); //This fails
这是否意味着我的内存不足?
调试时,调试器中的行为就像我离开了CollectionEventsViewModel。该视图模型中不再包含任何调试信息。
的调用没有返回值status = await NavigationService.NavigateAsync("ItemDetailsPage”);
也没有捕获异常。我正在iOS和Android的Mac上开发此应用程序。单步执行代码似乎并不能告诉我一切。我不确定哪种诊断工具可以告诉我更多信息。
答案 0 :(得分:0)
可能在最后一页中,您在xaml或类似内容中存在一些错误,我曾经遇到这个问题,这是因为我为标签定制了渲染,而在iOS渲染中我没有检查null ,这导致页面无法呈现,而且即使不是问题,也要花几个小时才解决,这是导航问题,因此请确保您没有任何UI错误(错误的绑定,空的绑定,错误的语法,等等)。