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

c# - MvvmCross - 如何添加自定义模态转换

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

我正在使用 MvvmCross 和 Xamarin 开发一个项目。我试图在呈现和关闭我的模态视图时添加自定义过渡。目前我是这样介绍的:

[MvxModalPresentation(WrapInNavigationController = true, ModalPresentationStyle = UIModalPresentationStyle.Custom)]
public partial class MyView : MvxViewController
{

并以这种方式解雇它:

NavigationController.DismissModalViewController(true);

所以我已经准备好我的动画,但我假设我需要将转换委托(delegate)设置为我创建的那个。我该怎么做?

我对 MvvmCross 还很陌生,因此非常感谢任何提示和技巧。谢谢!



Best Answer-推荐答案


我不确定,你真正想要在这里实现什么。

如果您正在寻找语法帮助。应该是这样的。

this.NavigationController.TransitioningDelegate = new MyOwnDelegate();


  internal class MyOwnDelegate : IUIViewControllerTransitioningDelegate
    {
        public IntPtr Handle => throw new NotImplementedException();

        public void Dispose()
        {
            //throw new NotImplementedException();
        }
    }

但通常人们使用,这个。如果有帮助,我也会给出一些语法

this.NavigationController.Delegate = new NavigationControllerDelegate();



 public class NavigationControllerDelegate : UINavigationControllerDelegate
{
    public NavigationControllerDelegate(IntPtr handle) : base(handle)
    {
    }
    public NavigationControllerDelegate()
    {
    }
    public override IUIViewControllerAnimatedTransitioning GetAnimationControllerForOperation(UINavigationController navigationController, UINavigationControllerOperation operation, UIViewController fromViewController, UIViewController toViewController)
    {
        var fromVcConformA = fromViewController as ICustomTransition;
        var fromVCConFromB = fromViewController as IWaterFallViewControllerProtocol;
        var fromVCCConformc = fromViewController as IHorizontalPageViewControllerProtocol;

        var toVcConformA = toViewController as ICustomTransition;
        var toVCConfromB = toViewController as IWaterFallViewControllerProtocol;
        var toVCCConformc = toViewController as IHorizontalPageViewControllerProtocol;

        if ((fromVcConformA != null) && (toVcConformA != null) && ((fromVCConFromB != null && toVCCConformc != null) || (fromVCCConformc != null && toVCConfromB != null)))
        {
            var transition = new CustomTransition();
            transition.presenting = operation == UINavigationControllerOperation.Pop;
            return transition;
        }
        else
        {
            return null;
        }
    }

}

关于c# - MvvmCross - 如何添加自定义模态转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52196061/

回复

使用道具 举报

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

本版积分规则

关注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