public override IMvxIosView CreateViewOfType(Type viewType, MvvmCross.Core.ViewModels.MvxViewModelRequest request)
        {
            var requestedType = viewType;

            if (request is ProxyViewModelRequest viewModelRequest)
            {
                requestedType = viewModelRequest.ViewType;
            }

            if (viewType == typeof(HomeViewController))
            {
                return(base.CreateViewOfType(requestedType, request));
            }

            try
            {
                var attr = requestedType.GetCustomAttributes(false).OfType <MvxFromStoryboardAttribute>().FirstOrDefault();

                var storyboard = UIStoryboard.FromName(attr == null ? "Home" : attr.StoryboardName, null); // the actual file name of storyboard ( may be different from .cs file)

                return((IMvxIosView)storyboard.InstantiateViewController(requestedType.Name));
            }
            catch (Exception ex)
            {
                Console.Write(ex);
                Console.WriteLine("request: " + (request == null));
                Console.WriteLine("requestedType: " + (requestedType == null));
                return(base.CreateViewOfType(requestedType, request));
            }
        }
Esempio n. 2
0
        protected override IMvxIosView CreateViewOfType(Type viewType, MvvmCross.Core.ViewModels.MvxViewModelRequest request)
        {
            UIStoryboard storyboard;

            try
            {
                storyboard = UIStoryboard.FromName(viewType.Name, null);
            }
            catch (Exception)
            {
                return(base.CreateViewOfType(viewType, request));
            }
            var view = storyboard.InstantiateViewController(viewType.Name);

            return((IMvxIosView)view);
        }
        public override IMvxIosView CreateView(MvvmCross.Core.ViewModels.MvxViewModelRequest request)
        {
            var view = CreateViewFromViewModelType(request.ViewModelType);

            if (view == null)
            {
                var viewType = GetViewType(request.ViewModelType);
                if (viewType == null)
                {
                    throw new MvxException("View Type not found for " + request.ViewModelType);
                }

                view = CreateViewOfType(viewType, request);
            }
            view.Request = request;
            return(view);
        }
 protected override IMvxIosView CreateViewOfType(Type viewType, MvvmCross.Core.ViewModels.MvxViewModelRequest request)
 {
     return(CreateView(viewType.Name));
 }
Esempio n. 5
0
 public override void Show(MvvmCross.Core.ViewModels.MvxViewModelRequest request)
 {
     base.Show(request);
 }