У меня есть контроллер навигации в качестве моего контроллера начального вида. Контроллер корневого представления - «StartViewController». Этот контроллер просмотра был создан раскадровкой.Xamarin Instantiate Начальный контроллер навигации в раскадровке
автоматически сгенерированная конструктор:
public StartingViewController (IntPtr handle) : base (handle)
{
}
Однако, когда я использую этот конструктор, я получаю ошибку «object reference not set to an object
», когда я пытаюсь получить доступ к любому из моих торговых точек. Например.
public override void ViewDidLoad()
{
base.ViewDidLoad();
label.Text = "hi";
}
Однако что-то вроде этого работает отлично:
public override void ViewDidLoad()
{
base.ViewDidLoad();
Console.WriteLine("hi");
}
Я пытался использовать другой конструктор:
public StartingViewController() : base ("StartingViewController", null)
{
}
Для этого, я не получить предыдущую ошибку, но в ViewDidLoad()
код не запускается, и он печатает предупреждение, "Ignoring invocation of an instance method on a NULL instance"
.
Не преступление предназначено, но это нехорошо. Я и большинство людей, которых я знаю, используя Xamarin, не используют XCode. Они используют Xamarin Studio или Visual Studio для создания своих раскадровки. Как мы исправим эту проблему в Xamarin или Visual Studio? Буквально ВСЕ представления, созданные с помощью storybaord, всегда равны нулю, когда приложение попадает в 'ViewDidLoad', что делает этот метод практически бесполезным, если мы вообще не прекратим использование раскадровки. –