• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c# - 演示者字典中未配置 MvxSidebarPresentationAttribute

[复制链接]
菜鸟教程小白 发表于 2022-12-12 14:30:55 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

Unhandled Exception

System.Collections.Generic.KeyNotFoundException: The type MvxSidebarPresentationAttribute is not configured in the presenter dictionary

  • MvvmCros 5.6 工具
  • Visual Studio 2015
  • Windows 8.1
  • iPhone 7 模拟器 iOS 10.3


代码
菜单 View

    [MvxFromStoryboard("Main")]
    [MvxSidebarPresentation(MvxPanelEnum.Left, MvxPanelHintType.PushPanel, false)]
    public partial class MenuViewController : MvxViewController<MenuViewModel>
    {
        public MenuViewController(IntPtr handle) : base(handle)
        {
        }

        public MenuViewController() : base("MenuViewController", null)
        {
        }

        public override void DidReceiveMemoryWarning()
        {
            // Releases the view if it doesn't have a superview.
            base.DidReceiveMemoryWarning();

            // Release any cached data, images, etc that aren't in use.
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            var set = this.CreateBindingSet<MenuViewController, MenuViewModel>();
            set.Bind(btnFirst).To(vm => vm.GotoFirstView);
            set.Bind(btnSecond).To(vm => vm.GotoSecondView);
            set.Apply();
            // Perform any additional setup after loading the view, typically from a nib.
        }
}

第一个 View

[MvxFromStoryboard("Main")]
[MvxSidebarPresentation(MvxPanelEnum.Center, MvxPanelHintType.ResetRoot, true)]
public partial class FirstViewController : MvxViewController<FirstViewModel>
{
    public FirstViewController() : base("FirstViewController", null)
    {
    }

    public FirstViewController(IntPtr handle) : base(handle)
    {
    }
    public override void DidReceiveMemoryWarning()
    {
        base.DidReceiveMemoryWarning();

        // Release any cached data, images, etc that aren't in use.
    }

    public override void ViewDidLoad()
    {
        base.ViewDidLoad();

        // Perform any additional setup after loading the view, typically from a nib.
    }
}

第二个 View

[MvxFromStoryboard("Main")]
    [MvxSidebarPresentation(MvxPanelEnum.Center, MvxPanelHintType.ResetRoot, true)]
    public partial class SecondViewController : MvxViewController<SecondViewModel>
    {
        public SecondViewController() : base("SecondViewController", null)
        {
        }

        public SecondViewController(IntPtr handle) : base(handle)
        {
        }

        public override void DidReceiveMemoryWarning()
        {
            base.DidReceiveMemoryWarning();

            // Release any cached data, images, etc that aren't in use.
        }

        public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            // Perform any additional setup after loading the view, typically from a nib.
        }
    }

我在我的 ios 项目中使用了上面的代码,但它只是在输出中显示错误为
未处理的异常

System.Collections.Generic.KeyNotFoundException:类型 MvxSidebarPresentationAttribute 未在演示者字典中配置



Best Answer-推荐答案


您必须在您的 iOS 项目的 Setup.cs 文件中使用 MvxSidebarPresenter:

protected override IMvxIosViewPresenter CreatePresenter()
{
   return new MvxSidebarPresenter((MvxApplicationDelegate)ApplicationDelegate, Window);
}

您可以查看工作示例 in the samples .

关于c# - 演示者字典中未配置 MvxSidebarPresentationAttribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48238699/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap