Xamarin.ios 将pop/back事件中的数据传递给上一个视图模型
我有一个这样的结构: 会话视图->创建会话视图 对于这样的视图模型: SessionViewModel-会话对象列表 CreateSessionViewModel-单个Xamarin.ios 将pop/back事件中的数据传递给上一个视图模型,xamarin.ios,xamarin,mvvmcross,Xamarin.ios,Xamarin,Mvvmcross,我有一个这样的结构: 会话视图->创建会话视图 对于这样的视图模型: SessionViewModel-会话对象列表 CreateSessionViewModel-单个会话对象 用户在create session中填写表单,在视图模型上填充session对象,点击done,我调用:NavigationController.PopViewControllerAnimated(true),将它们带回会话列表 是否有方法将新创建的会话对象传递回以前的视图Viewmodel并将其添加到会话对象列表中?我
会话对象
用户在create session中填写表单,在视图模型上填充session
对象,点击done,我调用:NavigationController.PopViewControllerAnimated(true)
,将它们带回会话列表
是否有方法将新创建的会话对象传递回以前的视图Viewmodel并将其添加到会话对象列表中?我知道如何在ShowViewModel(PARAM)
命令中传递参数,但不知道如何在返回时传递参数
更新1:
我找到了做这件事的“a”方法。。但感觉不太好:
var sessionsView = (SessionsView)NavigationController.ViewControllers.FirstOrDefault(vc => vc is SessionsView);
var sessionsViewModel = (SessionsViewModel)sessionsView.ViewModel;
sessionsViewModel.Sessions.Add(vModel.Session);
NavigationController.PopViewControllerAnimated(true);
只需使用PopViewControllerAnimated(bool动画)的返回参数
NavigationController.PopViewControllerAnimated(true);
ViewControllerClass viewController=(ViewControllerClass)NavigationController.TopViewController;
viewController.StoreSessionObject(会话);pop方法返回的是当前视图,而不是我要返回的视图(因此在我的情况下,它返回的是CreateSessionView,而不是Sessions),因此不会真正给我任何我无权访问的内容(因为我可以这样做并获得相同的ViewController)啊,是的,对不起。更新了我的答案以反映这一点。实际上,我已经将会话列表移到了一个静态类中,这样我就可以更轻松地共享它,但您修改后的答案肯定回答了我的问题:)
NavigationController.PopViewControllerAnimated(true);
ViewControllerClass viewController = (ViewControllerClass)NavigationController.TopViewController;
viewController.StoreSessionObject(session); <-- you need to create this method