【问题标题】:MvxBaseTouchViewPresenter: (ChoosePictureFromLibrary dialog does not appear)MvxBaseTouchViewPresenter: (ChoosePictureFromLibrary 对话框不出现)
【发布时间】:2013-06-20 12:20:04
【问题描述】:

我正在使用自定义 Presenter。 我创建根导航控制器:

    public MainRootPresenter(UIApplicationDelegate applicationDelegate, UIWindow window)
    {
        _rootController = new UINavigationController(); // or: new UIViewController(); (no difference)
        window.RootViewController = rootController;
    }

然后在 public override void Show(MvxViewModelRequest request) 用视图和控制器做我自己的厨房。

但是,我在尝试通过以下方式从 iPhone 图片库中获取图片时遇到了问题 _pictureChooserTask.ChoosePictureFromLibrary( 在这个方法调用上没有任何反应。没有任何例外。

我想,问题是标准对话框(来自 sdk)有一些问题(或者演示者有 - 不确定。我尝试不使用演示者,它在我的视图中运行良好(代码实际上很简单 - 我没有做任何特别的事情)。 因此,似乎 SDK(带有库图像选择器控制器)将其添加到演示者位置或其他东西所不期望的位置。

我什至用 Presenter 尝试过最简单的方法(以确保这不是我使用其他控制器的自定义逻辑):

    public override void Show(MvxViewModelRequest request)
    {
        var controller0 = (UIViewController)Mvx.Resolve<IMvxTouchViewCreator>().CreateView(request);
        _rootController.PushViewController(controller0, false);
    }

什么都没有发生。

这怎么可能管理? 谢谢!

【问题讨论】:

    标签: ios xamarin mvvmcross controllers


    【解决方案1】:

    imagepicker 在 Presenter 中使用 PresentModalViewController 方法

    您的问题中没有包含该方法。

    无论如何,看看像MvxTouchViewPresenter.cs 这样的标准演示者,看看他们做了什么。您也许可以根据您的自定义情况对其进行调整。

        public override bool PresentModalViewController(UIViewController viewController, bool animated)
        {
            CurrentTopViewController.PresentViewController(viewController, animated, () => { });
            return true;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-31
      • 2011-08-21
      • 1970-01-01
      相关资源
      最近更新 更多