如何在用户更改CameraFlashMode时收到通知?

时间:2014-07-08 08:20:07

标签: xamarin.ios ios7.1

我使用普通香草UIImagePickerController和我自己的UIImagePickerControllerDelegate。这样做时,用户设置的闪光模式总是丢失,因为我在每次捕捉后处理整个控制器,因此再次打开相机总是设置闪光模式"返回"到自动(默认值)。

我可以重构我的相机实用程序,只要应用程序处于活动状态就让它生效,但更好的方法似乎是当用户更改闪光模式时收到通知,存储该模式并在相机之前设置它再次显示。

设置模式不是问题,但是当用户更改模式时我不会收到通知,UIImagePickerController方法中FinishedPickingMedia参数的属性也不会被通知UIImagePickerControllerDelegate包含用户设置的最新值,它也始终" auto"。

private class CameraDelegate : UIImagePickerControllerDelegate
{
    public override void FinishedPickingMedia(UIImagePickerController picker, NSDictionary info)
    {
        // Is always UIImagePickerControllerCameraFlashMode.Auto
        var foo = picker.CameraFlashMode;
    }
}

知道如何获取这些信息吗?

1 个答案:

答案 0 :(得分:1)

我认为您可以尝试使用键值观察来在您的媒体资源发生变化时收到通知。 您可以找到有关如何让KVO使用monotouch here的教程。 并且KVO上始终存在official Apple Documentation