Xamarin在Storyboard中实例化初始导航控制器

时间:2015-04-19 18:48:29

标签: ios uiviewcontroller xamarin xamarin.ios sigint

我有一个导航控制器作为我的初始视图控制器。它的根视图控制器是" 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"

2 个答案:

答案 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的头文件。

enter image description here

当您关闭xCode时,Xamarin将与您的更改同步,您将能够修改该组件。