Xamarin.iOS - Невозможно загрузить контроллер представления из другого контроллера представления - PullRequest
0 голосов
/ 02 октября 2019

Я недавно начал разрабатывать с использованием Xamarin, так что я ни в коем случае не эксперт, и я уже несколько дней сталкиваюсь с этой проблемой.

Прежде всего, я не использую раскадровки. Я создаю свои собственные пользовательские представления (xib) и загружаю их из кода

. Я создаю новое приложение Xamarin.iOS и пытаюсь загрузить контроллер представления из другого контроллера представления. Первоначально я загружаю первый контроллер из AppDelegate следующим образом:

        public override bool FinishedLaunching(UIApplication application, NSDictionary launchOptions)
        {
            window = new UIWindow(UIScreen.MainScreen.Bounds);
            appStartUpController = new AppStartUpController();
            window.RootViewController = appStartUpController;
            window.MakeKeyAndVisible();

            return true;
        }

Это загружает мой штраф AppStartUpController, который в основном представляет собой просто экран загрузки с фоновым изображением и анимацию загрузки, пока я выполняю вызов API вфон. После завершения вызова API я хочу загрузить другой контроллер представления.

После завершения вызова API я пытаюсь загрузить следующий контроллер следующим образом:

            var controller = new CityPickerViewController();
            this.NavigationController.PushViewController(controller, false);

И вотмой CityPickerViewController:

    public partial class CityPickerViewController : UIViewController
    {
        CityPicker_View v;
        public CityPickerViewController(IntPtr handle) : base(handle)
        {
        }

        public CityPickerViewController ()
        {
        }
        public override void ViewDidLoad()
        {
            base.ViewDidLoad();
            v = CityPicker_View.Create();
            this.View = v;
        }

        public override void ViewWillAppear(bool animated)
        {
            base.ViewWillAppear(false);
            UIImage i = UIImage.FromFile("citypickbackground.jpg");
            i = i.Scale(this.View.Frame.Size);

            this.View.BackgroundColor = UIColor.FromPatternImage(i);
        }
    }

Я, вероятно, упускаю что-то здесь очевидное, но CityPickerViewController не загружается. Если я поставлю точку останова в коде, переопределения viewDidLoad / ViewWillAppear никогда не будут достигнуты.

Я начинающий программист и определенно буду признателен за любые советы по этому поводу. Заранее спасибо!

...