public RecognizerCollection(IRecognizer[] recognizers)
 {
     this.recognizers = recognizers;
     MBRecognizer[] nativeRecognizers = new MBRecognizer[recognizers.Length];
     for (int i = 0; i < recognizers.Length; ++i)
     {
         nativeRecognizers[i] = ((Recognizer)recognizers[i]).NativeRecognizer;
     }
     NativeRecognizerCollection = new MBRecognizerCollection(nativeRecognizers);
 }
        partial void StartScanningButton_TouchUpInside(UIButton sender)
        {
            // create a collection of recognizers that will be used for scanning
            var recognizerCollection = new MBRecognizerCollection(new MBRecognizer[] { mrtdRecognizer, eudlRecognizer, usdlRecognizer });

            // create a settings object for overlay that will be used. For ID it's best to use DocumentOverlayViewController
            // there are also other overlays available - check iOS documentation
            var documentOverlaySettings = new MBDocumentOverlaySettings();
            var documentOverlay         = new MBDocumentOverlayViewController(documentOverlaySettings, recognizerCollection, customDelegate);

            // finally, create a recognizerRunnerViewController
            var recognizerRunnerViewController = MBViewControllerFactory.RecognizerRunnerViewControllerWithOverlayViewController(documentOverlay);

            // in ObjC recognizerRunnerViewController would actually be of type UIViewController<MBRecognizerRunnerViewController>*, but this construct
            // is not supported in C#, so we need to use Runtime.GetINativeObject to cast obtained IMBReocognizerRunnerViewController into UIViewController
            // that can be presented
            this.PresentViewController(ObjCRuntime.Runtime.GetINativeObject <UIViewController>(recognizerRunnerViewController.Handle, false), true, null);
        }