Я недавно начал разрабатывать с использованием 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 никогда не будут достигнуты.
Я начинающий программист и определенно буду признателен за любые советы по этому поводу. Заранее спасибо!