MvxBaseTouchViewPresenter :(不显示ChoosePictureFromLibrary对话框)

时间:2013-06-20 12:20:04

标签: ios xamarin mvvmcross controllers

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

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

然后在公开覆盖void Show(MvxViewModelRequest请求)用视图和控制器做我自己的厨房。

然而,当我试图通过iPhone图像库获取图像时,我遇到了问题 的 _pictureChooserTask.ChoosePictureFromLibrary( 在这个方法调用没有任何反应。没有任何例外。

我想,问题是标准对话框(来自sdk)有一些问题(或者演示者有 - 不确定。我已经尝试过不使用演示者,它可以正常使用我的视图(代码)实际上是非常直接的 - 我没有什么特别的)。 所以,似乎SDK(带有库图像选择器控制器)将它添加到演示者位置或其他东西不期望的位置。

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

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

并且没有任何事情发生。

如何管理? 谢谢!

1 个答案:

答案 0 :(得分:2)

imagepicker使用Presenter中的PresentModalViewController方法

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

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

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