【发布时间】:2020-03-27 08:30:27
【问题描述】:
大家好,我现在在 MVVMCross 中有一个非常奇怪的问题。
我正在尝试使用navigationService.Close(this) 关闭页面,但它没有关闭。在日志记录中,我看到以下消息:Ignoring close for ViewModel - Matching View for ViewModel instance failed。
我在 Github 上查看了抛出此消息的位置,这正是它所说的找不到需要关闭的视图。但现在奇怪的是:如果我只是将演示文稿更改为模态(在这种情况下我不想要),那么关闭命令就会起作用。
这是一个错误吗?难道我做错了什么?谁能帮帮我?
也许是因为我们有一个 TabbedRootViewModel 在其中完成导航?
【问题讨论】:
-
能否请您添加出现问题的代码?
-
我只是在 ViewModel 中调用
navigationService.Close(this)。还有哪些代码有助于查看? -
我使用
navigationservice.Close(this)它有效。我在 MvxContentPage 中使用它,你在什么视图中使用它?你可以试试navigationService.Navigate(previousViewModel) -
我也有一个 MvxContentPage,但导航发生在 MvxTabbedPagePresentation 中。所以这可能是原因。我尝试了
navigationService.Navigate(previousViewModel)并且可以正常工作,但是当然它会作为下一页导航,这不是我想要的。 -
对于遇到此问题的其他人来说,对我来说,我使用了一个返回堆栈提示处理程序来清除
ViewAppeared中的堆栈,导致对avigationService.Close(this)的调用失败。不过,我没有向控制台报告任何错误。
标签: xamarin xamarin.forms mvvmcross