public override void ViewDidLoad()
        {
            base.ViewDidLoad();

            this.View.BackgroundColor = UIColor.DarkGray;
            // Perform any additional setup after loading the view, typically from a nib.
            _surfaceTop = new SCIChartSurface();
            _surfaceTop.TranslatesAutoresizingMaskIntoConstraints = false;

            _surfaceBottom = new SCIChartSurface();
            _surfaceBottom.TranslatesAutoresizingMaskIntoConstraints = false;

            _szem = new SCIMultiSurfaceModifier(GetClassForType(typeof(SCIZoomExtentsModifier)));

            this.View.AddSubview(_surfaceTop);
            this.View.AddSubview(_surfaceBottom);

            var viewsDictionary = NSDictionary.FromObjectsAndKeys(new NSObject[] { _surfaceTop, _surfaceBottom }, new NSObject[] { new NSString("_surfaceTop"), new NSString("_surfaceBottom") });

            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("H:|-[_surfaceTop]-|", 0, new NSDictionary(), viewsDictionary));
            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("V:|-[_surfaceTop]-(==1)-[_surfaceBottom(==_surfaceTop)]-|", 0, new NSDictionary(), viewsDictionary));
            this.View.AddConstraints(NSLayoutConstraint.FromVisualFormat("|-[_surfaceBottom(==_surfaceTop)]-|", 0, new NSDictionary(), viewsDictionary));

            AddAxes(_surfaceTop);
            AddAxes(_surfaceBottom);

            _surfaceTop.Annotations = _annotationCollection;

            CreateDataSeries();
            CreateRenderableSeries();
            AddModifiers();
        }
        void AddModifiers()
        {
            var xDragModifierSync     = new SCIMultiSurfaceModifier(GetClassForType(typeof(SCIXAxisDragModifier)));
            var pinchZoomModifierSync = new SCIMultiSurfaceModifier(GetClassForType(typeof(SCIPinchZoomModifier)));
            var panZoomModifierSync   = new SCIMultiSurfaceModifier(GetClassForType(typeof(SCIZoomPanModifier)));

            // retreiving XAxisDragModifier for customization
            var xAxisDragmodifier = ObjCRuntime.Runtime.GetNSObject <SCIXAxisDragModifier>(xDragModifierSync.ModifierForSurface(_surfaceTop).Handle);

            if (xAxisDragmodifier != null)
            {
                xAxisDragmodifier.DragMode  = SCIAxisDragMode.Pan;
                xAxisDragmodifier.ClipModeX = SCIClipMode.None;
            }

            var legendCollectionModifier = new SCILegendModifier();

            var groupModifier = new SCIChartModifierCollection();

            groupModifier.Add(xDragModifierSync);
            groupModifier.Add(pinchZoomModifierSync);
            groupModifier.Add(legendCollectionModifier);

            _surfaceTop.ChartModifiers = groupModifier;

            var xAxisDragmodifierBottom = ObjCRuntime.Runtime.GetNSObject <SCIXAxisDragModifier>(xDragModifierSync.ModifierForSurface(_surfaceBottom).Handle);

            if (xAxisDragmodifierBottom != null)
            {
                xAxisDragmodifierBottom.DragMode  = SCIAxisDragMode.Pan;
                xAxisDragmodifierBottom.ClipModeX = SCIClipMode.None;
            }

            var pinchZoomModifierBottom = pinchZoomModifierSync.ModifierForSurface(_surfaceBottom);

            var groupModifierBottom = new SCIChartModifierCollection();

            if (xAxisDragmodifierBottom != null)
            {
                groupModifierBottom.Add(xDragModifierSync);
            }
            if (pinchZoomModifierBottom != null)
            {
                groupModifierBottom.Add(pinchZoomModifierSync);
            }

            _surfaceBottom.ChartModifiers = groupModifierBottom;
        }