/// <inheritdoc />
        public override void ViewWillAppear(bool animated)
        {
            SetupBackground();
            PrepareCustomAnimation();
            SetupLayout();

            AddChildViewController(_childDialog);
            _childDialog.View.TranslatesAutoresizingMaskIntoConstraints = false;
            ContainerView.AddSubview(_childDialog.View);
            ContainerView.UserInteractionEnabled = true;
            ContainerView.AddGestureRecognizer(new UITapGestureRecognizer(() => { }));

            NSLayoutConstraint.ActivateConstraints(new[]
            {
                _childDialog.View.LeadingAnchor.ConstraintEqualTo(ContainerView.LeadingAnchor),
                _childDialog.View.TrailingAnchor.ConstraintEqualTo(ContainerView.TrailingAnchor),
                _childDialog.View.TopAnchor.ConstraintEqualTo(ContainerView.TopAnchor),
                _childDialog.View.BottomAnchor.ConstraintEqualTo(ContainerView.BottomAnchor),
            });

            _childDialog.DidMoveToParentViewController(this);

            RootView.AddGestureRecognizer(GetTappedOutsideGestureRecognizer());
        }