我有一个导航控制器作为我的初始视图控制器。它的根视图控制器是" StartingViewController"。该视图控制器由故事板生成。
自动生成的构造函数是:
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"
。
答案 0 :(得分:1)
您需要使用故事板本身来创建视图控制器。请参阅Introduction to Storyboards上手动实例化故事板部分。
答案 1 :(得分:1)
自动生成的构造函数是正确的。
public StartingViewController (IntPtr handle) : base (handle)
{
}
您在ViewDidLoad()
内执行UI逻辑是正确的,object reference not set to an object
错误告诉您正在尝试将文本设置为的标签组件,不存在,或者引用是不存在。
在故事板中向ViewControllers添加组件时,需要创建对头文件的引用。
要执行此操作,请按住Control,然后将引用拖动到View Controller的头文件。
当您关闭xCode时,Xamarin将与您的更改同步,您将能够修改该组件。