【问题标题】:MvvmCross iOS presenter IMvxTouchView.ViewModel is nullMvvmCross iOS 演示者 IMvxTouchView.ViewModel 为空
【发布时间】:2014-04-05 05:18:53
【问题描述】:

我正在做一些涉及 MvvmCross 的项目。对于 iOS,我使用继承自 MvxTouchViewPresenter 的自定义演示器。

    public override void Show(IMvxTouchView view)
    {

     var viewController = view as UIViewController;

     if (viewController == null)
             throw new MvxException("Passed in IMvxTouchView is not a           UIViewController");
     if (_masterNavigationController == null)
             ShowFirstView(viewController);
     else
             _masterNavigationController.PushViewController(viewController, true /*animated*/);

     var myviewmodel = view.ViewModel;
     //Do some staff for myviewmodel

     }

我的问题是,在大多数情况下,此时 myviewmodel 为空。它是创建的,但稍后......当加载 viewController 时。看起来像是时间问题...有趣的是,这段代码在我之前的 MvvmCross 项目中运行良好。

我也试过用:

     var myviewmodel = view.ReflectionGetViewModel ();

不幸的是结果是一样的:( 任何人都知道如何解决或解决此问题?

【问题讨论】:

    标签: mvvmcross


    【解决方案1】:

    MvvmCross 在 ViewController 中创建 ViewModel 作为 base.ViewDidLoad() 的一部分 - 因此,如果尚未调用 ViewDidLoad,则不会有 ViewModel

    基于此:

    【讨论】:

    • 非常感谢您的快速回复和出色的解释,Stuart!我会试试看! :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多