【问题标题】:MVVM-Cross + Xamarin - Having Trouble with mvx CreateViewControllerFor()MVVM-Cross + Xamarin - mvx CreateViewControllerFor() 出现问题
【发布时间】:2017-05-12 09:58:02
【问题描述】:

我正在使用 MvvmCross 使用 Xamarin 开发 IOS 应用程序。 我想使用标签栏在我的视图之间导航。我希望每个视图只有 1 个故事板,并且想从代码中导航和调用我的视图。 我已经覆盖了 MvxStoryboardViewsContainer 方法 CreateViewOfTyp(),如下所示:

protected override IMvxTouchView CreateViewOfType(Type viewType, 
MvxViewModelRequest request)
    {
        var storyboardAttribute = viewType.GetCustomAttribute<FromStoryboardAttribute>();

        if (storyboardAttribute == null) {
            return base.CreateViewOfType(viewType, request);
        }

        string storyboardName = storyboardAttribute.StoryboardName ?? viewType.Name;

        return
            (IMvxTouchView)
                UIStoryboard.FromName(storyboardName, NSBundle.MainBundle).InstantiateInitialViewController();
    }

每次我尝试创建标签栏时,我都会将此方法称为尝试从我的模型创建视图。 我在这里遇到的问题是我实例化的 UIStoryboard 的类型是 UIViewController 而不是 MvxViewController(因此应用程序在尝试投射时崩溃)。 然而,实际的控制器应该是 MvxViewController!

[FromStoryboard("WorklistView")]
public partial class WorklistViewController : 
MvxViewController<WorklistViewModel>
{
   public WorklistViewController (IntPtr handle) : base (handle)
   {
   }
}

我不确定我错过了什么?为什么控制器我得到一个 UIViewController 而不是 MvxViewController 它应该是? 事情是我发现了很多关于我正在尝试做的事情,但我无法弄清楚我在做什么不同。

【问题讨论】:

    标签: c# ios xamarin mvvm xamarin.ios


    【解决方案1】:

    我发现了我的错误,这是一个非常愚蠢的错误。 我的设计器类的命名空间与我的控制器不同;天知道为什么……

    嗯,现在解决了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-04
      • 2018-10-20
      • 1970-01-01
      • 2012-08-19
      • 1970-01-01
      • 2011-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多